如何在成功事件处理程序中将XML文档的内容输出到$(this)?
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?
}
}
});
答案 0 :(得分: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);
}
如果我理解你的意图。
答案 1 :(得分:0)
在这种情况下,我为不同的响应内容设置了两个不同的AJAX处理程序:一个用于XML,一个用于JSON。而不是试图混合两者,激活一个或另一个,并直接跟进它。
要插入内容,请使用jQuery的.text()
。要将JSON或XML响应转换为文本,请分别使用JSON.stringify()
或.responseText
。