jQuery AJAX请求被视为application / xml而不是text / xml

时间:2013-04-22 16:24:30

标签: javascript jquery xml ajax

我正在为XML文件做一个简单的 AJAX 请求,而不是text / xml 它将它作为application / xml返回,这显然给了我一些问题。

代码:

method.getXmlData = function () {
  return jQuery.ajax({
    type: "GET",
    url: "testxml.xml?id=" + theQuizId,
    async: false,
    dataType: "xml"
  });
};
theQuizData = method.getXmlData();

有人有过类似的问题吗?

注意:由于CORS,不能包含js-fiddle。

2 个答案:

答案 0 :(得分:0)

我通过将代码更改为以下代码来实现它:

method.getXmlData = function () {
var outerData;
jQuery.ajax({
  type: "GET",
  url: "testxml.xml?id=" + theQuizId,
  async: false,
  cache: false,
  dataType: "xml",
  success : function(data) {
    outerData = data;
  }
});
return outerData;
};
theQuizData = method.getXmlData();

答案 1 :(得分:-1)

在哪个浏览器上尝试上述代码? 尝试使用dataType : "text/xml"而不是xml。 IE处理XML数据类型不同(作为ActiveXObject,其他浏览器如chrome将它们处理为Simple XML)。 例如。

$.ajax({ 
    url : "myUrl", 
    type : 'post', 
    dataType: ($.browser.msie) ? "text" : "xml",
    success: function(data) {
        var xml;
          if (typeof data == 'string') {
            /*This is for IE*/
            xml = new ActiveXObject("Microsoft.XMLDOM");
            xml.async = false;
            xml.loadXML(data);
          } else {
            xml = data;
          }
    }
}