jQuery:如何将XML文档的内容输出到节点?

时间:2011-04-20 22:32:42

标签: jquery

如何在成功事件处理程序中将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?
        }
    }
});

2 个答案:

答案 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