jquery ajax call return value

22,348

Solution 1

Try using Chrome developer tools or the firebug plugin from Firfox. Not sure if IE's developer tools lets you inspect the ajax calls?

The resulting string you are looking for is actually within the result object. You need to look at the d variable. I remember reading somewhere why this was, I think it is ASP.NET playing around :|

Try:

success: function(data) {alert(data.d);} 

c#

[WebMethod]
public static string GetTest(string var1)
{
    return "Result";
}

Hope this helps.

Solution 2

Its just that you are stuck at the .d that is introduced in the JSON response from ASP.NET 3.5. To quote Dave Ward,

If you aren’t familiar with the “.d” I’m referring to, it is simply a security feature that Microsoft added in ASP.NET 3.5’s version of ASP.NET AJAX. By encapsulating the JSON response within a parent object, the framework helps protect against a particularly nasty XSS vulnerability.

So just check whether .d exists and then unwrap it. Change your success function like this.

success: function(result) {
    var msg = result.hasOwnProperty("d") ? result.d : result;
    alert(msg );
}        
Share:
22,348
madatanic
Author by

madatanic

Updated on November 15, 2020

Comments

  • madatanic
    madatanic over 3 years

    I have an asp.net application with a static page method. I'm using the below codes to call the method and get its returned value.

    $.ajax({
           type: "POST",
           url: "myPage/myMethod",
           data: "{'parameter':'paramValue'}",
           contentType: "application/json; charset=utf-8",
           dataType: "json",
           success: function(result) {alert(result);}                                
     });
    

    What i got returned is [object Object].

    Below is my static method. And I also have EnablePageMethods="true" EnablePartialRendering="true" in my ScriptManager.

        [WebMethod]
        [ScriptMethod]
        public static string myMethod(string parameter)
        {
             return "Result";
        }
    

    Is there a way for me to get the returned value?

  • andryuha
    andryuha almost 13 years
    data.d is key here, asp.net serves up json in .d for some security reasons
  • madatanic
    madatanic almost 13 years
    just found that out few mins after editting the question.LOL. jquery is awesome! loving it.
  • naveen
    naveen almost 13 years
    its not asp.net playing around. .d is there for a reason :)