0

我正在使用 Jquery 1.9.1。它在 Chrome 中运行良好,但即 8,我得到错误:“无效的 xml”。看来 IE 6-8 的 dataType: xml 有问题。Jquery.parseXML 不适用于 ie-6-8。

$(document).ready(function() {
    $.ajax({
        type: "GET",
        url: "faculty.xml",
        dataType: "text",
        success: function(xml) { parseXmlx(xml); },
        error: function(e) { alert(e) }
    });
    $("#output").append("<p>Loading full-time faculty...</p>");
});

function parseXmlx(xml) {
    $("#output").empty();
    // alert(xml);
    var $xml = $(jQuery.parseXML(xml));
    // find every Tutorial and print the author
}



<person>
<name>test</name>
</person>

错误:

网页错误详情

User Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)
Timestamp: Wed, 19 Jun 2013 17:42:26 UTC


Message: Invalid XML: <person>
<name>Test</name>
</person>

Line: 507
Char: 3
Code: 0
URI: jquery-1.9.1.js
4

1 回答 1

0

我不确定这是否是导致问题的原因,但最好将以下行添加为 XML 文件的第一行。(无权访问 IE8 进行测试)

<?xml version="1.0" encoding="utf-8"?>

您也可以尝试强制标题以确保这些是正确的:

改变

$.ajax({
    type: "GET",
    url: "faculty.xml",
    dataType: "text",
    success: function(xml) { parseXmlx(xml); },
    error: function(e) { alert(e) }
});

至:

$.ajax({
    type: "GET",
    url: "faculty.xml",
    dataType: ($.browser.msie) ? "text" : "xml",
    accepts: {
         xml: "text/xml",
         text: "text/xml"
    },
    success: function(xml) { parseXmlx(xml); },
    error: function(e) { alert(e) }
});

(cfr. IE9 拒绝处理 XML 响应

于 2013-06-19T17:45:56.747 回答