6

When I make a JQuery call, I get an Authentication failed response:

{
    Message: "Authentication failed.", 
    StackTrace: null, 
    ExceptionType: "System.InvalidOperationException"
}

jQuery call:

$(document).ready(function () {
    //Handle the change event for the drop down list
    $("#ddRegions").change(function () {
        //create the ajax request
        $.ajax({
            type: "POST", //HTTP method
            url: '<%= ResolveUrl("WebForm2.aspx/getLocations")%>', //page/method name
            data: "{}", //json to represent argument
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (msg) { //handle the callback to handle response                
                //request was successful. so Retrieve the values in the response.
                alert(msg.toSource());
            }
        });
    });
});

The web method:

public static string getLocations() {
    System.Diagnostics.Debug.WriteLine("Getting Locations.");
    return "{region:auckland, city:auckland}";
}

I added the following to my web.config:

<authorization>
    <allow users="*" />
</authorization>
<authentication mode="None" />

And I tried setting the AutoRedirectMode to Off in RouteConfig.cs. This stops the error, but still the web method never gets called. Any suggestions?

9
  • 1
    Did you try using $.support.cors = true; in jquery to enable cross origin this is restricted from browsers for security purpose? Commented Apr 28, 2015 at 6:25
  • When you say it never gets called, does the browser send the request? If so can you please show the response and request using Fiddler or Google Chrome Developer Tools? Commented Apr 28, 2015 at 6:29
  • Can this help you? forums.asp.net/t/… Commented Apr 28, 2015 at 6:35
  • Does this even postback firstly ? Commented Apr 28, 2015 at 6:48
  • dataType: 'json' forces jquery to parse the response data automatically. But the getLocations() method returns invalid json. It should be: {"region":"auckland", "city":"auckland"}. The double quotes are very important for JSON.parse(). Commented Apr 28, 2015 at 7:11

1 Answer 1

4

Resolved by setting AutoDirectMode to Off in App_Start/RouteConfig.cs

settings.AutoRedirectMode = RedirectMode.Off;

and adding a ScriptManager to the aspx page that has an EnablePageMethods set to 'true':

<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="True">
    </asp:ScriptManager>
Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.