如何在PRE标记中显示来自AJAX请求的XML响应

时间:2011-12-15 15:01:14

标签: javascript jquery xml ajax

我正在使用jquery向一个响应XML的Web服务发出AJAX请求:

$.ajax({
    type: "GET",
    url: $uri,
    dataType: "xml",
    async: false,
    contentType: "text/xml; charset=\"utf-8\"",
    complete: function(xmlResponse) {
        $("#preForXMLResponse").html(xmlResponse);
    }
});

我想在PRE标记内的HTML页面中显示来自Web服务的XML响应。但上面的代码不起作用。如何将XML响应更改为字符串并将其显示在PRE标记内?

4 个答案:

答案 0 :(得分:3)

试试这个

$.ajax({
    type: "GET",
    url: $uri,
    dataType: "xml",
    async: false,
    contentType: "text/xml; charset=\"utf-8\"",
    success: function(xmlResponse) {
        $("#preForXMLResponse").html('<pre>'+xmlResponse+'</pre>');
    }
});

答案 1 :(得分:3)

试试这个:

$(function(){

    $.ajax({
         type: "GET",
         url: $uri,
         dataType: "xml",
         async: false,
         contentType: "text/xml; charset=\"utf-8\"",
         complete: function(xmlResponse) {

                // So you can see what was wrong...
                console.log(xmlResponse);
                console.log(xmlResponse.responseText);

              $("#preForXMLResponse").text(xmlResponse.responseText);
         }
    });

});

答案 2 :(得分:0)

您可以通过HTML编码功能传递数据,例如:http://www.strictly-software.com/htmlencode

$("#preForXMLResponse").html(HTMLEncode(xmlResponse.xml));

请注意HTMLEncode是一个伪函数,只是为了澄清我的答案,必须更改为一个函数名,就像上面的链接一样,除了它的实现。

答案 3 :(得分:0)

$.ajax({
type: "GET",
url: "/static/css/xml/xmlname.xml",
dataType: "xml",
success: function(xml){
     //now you can use of your response like
$("your tagName",$(this)).each(function(){
     alert($(this).attr('class'))

})

}
})
  

注意:XML响应只能在成功函数中访问