【问题标题】:Why we use data.d while get response from ajax json call?为什么我们在从 ajax json 调用中获取响应时使用 data.d?
【发布时间】:2014-12-29 22:46:00
【问题描述】:

我正在使用我的 Html 页面中的 AJAX 调用来调用我的 asmx.cs 文件中的方法,使用以下代码:

    <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>

所以我的问题是为什么我们需要使用 data.d ?为什么所有数据都存储在.d 中,.d 是什么?

因为当我只使用data 时,它并没有给我正确的返回值,但是当我使用data.d 时,它确实给了我。

请给我建议。

服务器端代码 C#

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

所以d 不是属性或变量,但我仍然在.d 中获得了价值 谢谢

【问题讨论】:

  • 没有 JSON 代码无法回答。
  • data 是从端点返回的 JSON 对象。 d 是它的属性之一,您正在检查datad 属性是否等于字符串'success'。
  • 你可以不用 JSON 代码来回答...服务器正在返回带有名为 d 的变量的 JSON
  • .d 不是任何属性或变量,请参阅更新后的帖子
  • c# 3.5 及更高版本将所有数据放入变量'd'中。

标签: javascript jquery asp.net ajax json


【解决方案1】:

C# 3.5 及更高版本会将所有 JSON 响应序列化为变量 d

当服务器发送 JSON 响应时,它将具有类似于以下的签名:

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

在 ajax 成功函数中使用 console.log(data),您将在浏览器控制台中看到响应数据结构。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-12
    • 2014-02-17
    • 2015-12-09
    • 2020-11-27
    • 1970-01-01
    • 2015-04-28
    • 1970-01-01
    • 2013-12-06
    相关资源
    最近更新 更多