2011-04-20 44 views
0

如何在成功事件處理程序中將XML文檔的內容輸出到$(this)?jQuery:如何將XML文檔的內容輸出到節點?

var useJson = false; 

var acceptHeader; 
if (useJson) { 
    acceptHeader = "application/json"; 
} else { 
    acceptHeader = "text/xml" 
} 


$.ajax({ 
    url: '<%= Url.Action("GetAllCategories") %>', 
    beforeSend: function (req) { 
     req.setRequestHeader("Accept", acceptHeader); 
    }, 
    type: 'POST', 
    accepts: "application/json", 

    context: $("#divGetAllCategories"), 
    contentType: 'application/json; charset=utf-8', 
    error: function (data) { 
     $("html").html(data.responseText); 
    }, 
    success: function (data) { 
     if (useJson) { 
      $(this).text(JSON.stringify(data)); 
     } 
     else { 
      //How do i insert xml data into $(this) as text? 
     } 
    } 
}); 

回答

1

取從XHR對象的原始數據:

success: function (data, textStatus, jqXHR) { 
    if (useJson) { 
     $(this).text(JSON.stringify(data)); 
    } 
    else { 
     $(this).text(jqXHR.responseText); 
    } 
} 

您可以JSON做到這一點爲好,這樣您的代碼可以簡化爲:

success: function (data, textStatus, jqXHR) { 
    $(this).text(jqXHR.responseText); 
} 

如果我沒有理解你的意圖是否正確。

+0

感謝您的幫助! :) – burnt1ce 2011-04-21 14:44:48

0

在這種情況下,我會針對不同的響應內容設置兩個不同的AJAX處理程序:一個用於XML,一個用於JSON。而不是試圖混合兩者,激活其中一個,然後直接進行。

要插入內容,請使用jQuery的.text()。要將JSON或XML響應轉換爲文本,請分別使用JSON.stringify().responseText

+0

.responseText只適用於第三個回調參數(Harpyon示例中的jqXHR參數)。謝謝! – burnt1ce 2011-04-21 14:42:43

相關問題