一尘不染

从JSON Web服务返回HTML-什么是“ .d”?

json

在这种情况下,我不得不学习新技术并运行新技术而又没有时间学习基础!

我有以下js函数调用PrintService,该函数向我返回要注入div的HTML:

function showPrintDialog() {
  $.ajax({
        type: "POST",
        contentType: "application/json; charset=utf-8",
        data: "{}",
        dataType: "json",
        url: "http://localhost/PrintService/PrintService.asmx/RenderPrintDialog",

        success: function(data) {
            $("#printdialoginner").html(data.d);

另一个例子中我注意到“ .d”之前,我为此苦苦挣扎

因此,它可以工作-但是为什么呢?这是什么“ .d”?

抱歉,如果这是一个菜鸟问题,但google不是我的朋友。

谢谢

编辑:Magnar是正确的,它是.NET特定的东西。 在此处查看Rick Strahl- http://www.west-
wind.com/weblog/posts/164419.aspx

令我感到困惑的是,它必须返回JSON,因为我的客户端脚本代码对返回非常满意,但是当我访问浏览器时,我得到了XML …?


阅读 193

收藏
2020-07-27

共1个答案

一尘不染

PrintService使用JSON响应,JSON是一种基于JavaScript对象表示法的数据传输格式。因此,数据参数是一个对象,而不是HTML字符串。该对象似乎有一个名为的成员d,其中包含HTML。

如果直接访问URL
http://localhost/PrintService/PrintService.asmx/RenderPrintDialog,则应该看到以下内容:

{
    d: "<html here>"
}

可能还有其他成员。

大括号表示对象,而内部则是键:用逗号分隔的值对。您可以在json.org上阅读有关json的更多信息。

确切为什么调用它d是您必须与PrintService的作者联系的事情。;-)也许markuphtml将是一个更有用的名称。

编辑

事实证明Duncan是PrintService的作者,而他本人并未包括’d’。另外,在访问URL时,他看到的是XML,而不是JSON。当在http请求中要求使用Web服务的.NET框架时,它会使用JSON进行响应。该d框架将臭名昭著的-
member作为包装器添加,以防止跨站点脚本编写。

本文介绍了整个过程:ASP.NET AJAX版本之间的重大更改

2020-07-27