從 JSON 網路服務返回 HTML - 什麼是“.d”?
這是我不得不拿起並使用新技術而沒有時間學習基礎的情況之一!
我有以下呼叫 PrintService 的 js 函式,它返回要注入 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 響應,這是一種基於 JavaScript Object Notation 的數據傳輸格式。所以數據參數是一個對象,而不是 HTML 字元串。該對像似乎有一個名為 的成員
d,其中包含 HTML。如果您直接訪問 URL
http://localhost/PrintService/PrintService.asmx/RenderPrintDialog,您應該會看到以下內容:{ d: "<html here>" }可能還有其他成員。
花括號表示一個對象,裡面是鍵:用逗號分隔的值對。您可以在json.org閱讀有關 json 的更多資訊。
呼叫它的確切原因
d是您必須與 PrintService 的作者討論的問題。;-) 也許markup或者html會是一個更有幫助的名字。編輯
事實證明,Duncan 是 PrintService 的作者,他自己並沒有包含“d”。此外,在訪問 URL 時,他看到的是 XML,而不是 JSON。當在 http 請求中請求 JSON 時,正在使用的 Web 服務的 .NET 框架會以 JSON 響應。該框架添加了臭名昭著的
d成員作為包裝器,以防止跨站點腳本。本文解釋了整個交易:ASP.NET AJAX 版本之間的重大變化