Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why we use data.d while get response from ajax json call?

I am using AJAX call from my Html page to call a method from my asmx.cs file, using below code:

    <script type="text/javascript">
        function ajaxCall() {               
            var UserName = $("#<%=lblUsername.ClientID %>").text();                
            $("#passwordAvailable").show();
            $.ajax({
                type: "POST",
                url: 'webServiceDemo.asmx/CheckOldPassword',
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                data: JSON.stringify({ UserName: UserName }),
                success: function (data) {
                    if (JSON.parse(data.d) != "success") // Why we need to use "data.d" ??                                  
                    {
                        $("#passwordAvailable").attr("src", "App_Themes/NewTheme/images/deleteICN.gif");
                        $("#<%=txtOldPwd.ClientID %>").css({ 'border': '1px solid red' });
                    }
                    else {
                        $("#passwordAvailable").attr("src", "App_Themes/NewTheme/images/signoff.gif");
                    }
                }                    
            });
        }
    </script>

So my Question is why do we need to use data.d ? Why does all data is being stored in .d and what is .d?

Because when I use only data it's not giving me correct return values but when I used data.d it does.

please give me suggestions.

Server side code C#

[WebMethod]
    public string CheckOldPassword(string UserName)
    {
// code here
string sRtnValue = "success";
return sRtnValue;
}

so d is not property or variable but still I got value in .d Thanks

like image 242
prog1011 Avatar asked Nov 03 '14 09:11

prog1011


1 Answers

C# 3.5 and above will serialize all JSON responses into a variable d.

When the server sends a JSON response it will have a signature similar to this:

{
    "d" : {
        "variable" : "value"
    }
}

With a console.log(data) inside the ajax success function you'll see the responses data structure in the browser console.

like image 103
David Barker Avatar answered Nov 15 '22 19:11

David Barker