2011-04-20 57 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

相关问题