在这种情况下,我不得不学习新技术并运行新技术而又没有时间学习基础!
我有以下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 …?
PrintService使用JSON响应,JSON是一种基于JavaScript对象表示法的数据传输格式。因此,数据参数是一个对象,而不是HTML字符串。该对象似乎有一个名为的成员d,其中包含HTML。
d
如果直接访问URL http://localhost/PrintService/PrintService.asmx/RenderPrintDialog,则应该看到以下内容:
http://localhost/PrintService/PrintService.asmx/RenderPrintDialog
{ d: "<html here>" }
可能还有其他成员。
大括号表示对象,而内部则是键:用逗号分隔的值对。您可以在json.org上阅读有关json的更多信息。
确切为什么调用它d是您必须与PrintService的作者联系的事情。;-)也许markup或html将是一个更有用的名称。
markup
html
事实证明Duncan是PrintService的作者,而他本人并未包括’d’。另外,在访问URL时,他看到的是XML,而不是JSON。当在http请求中要求使用Web服务的.NET框架时,它会使用JSON进行响应。该d框架将臭名昭著的- member作为包装器添加,以防止跨站点脚本编写。
本文介绍了整个过程:ASP.NET AJAX版本之间的重大更改