【问题标题】:jQuery AJAX request being treated as application/xml instead of text/xmljQuery AJAX 请求被视为 application/xml 而不是 text/xml
【发布时间】:2013-04-22 16:24:29
【问题描述】:

我正在对 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。

【问题讨论】:

  • 它给出了什么问题?这怎么看出来的?
  • 你试过明确设置contentType
  • contentType : ' text/xml;
  • @ClaytonMisura — 这是一个 GET 请求。没有提供内容类型的消息正文。 (并且它已经有 dataType: "xml" 告诉 jQuery 将响应解析为 XML,无论响应内容类型是什么)。
  • 不要contentType 在 GET 请求中设置 Accept 标头吗?

标签: javascript jquery xml ajax


【解决方案1】:

我通过将代码更改为以下内容使其工作:

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();

【讨论】:

    【解决方案2】:

    您在哪个浏览器上尝试上述代码? 尝试使用 dataType : "text/xml" 而不是 xml 。 IE 以不同的方式处理 XML 数据类型(作为 ActiveXObject,其他浏览器(如 chrome)将它们作为简单 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;
              }
        }
    }
    

    【讨论】:

    • 尝试使用 dataType : "text/xml" — 由于问题表明服务没有,因此假设更改超出了作者。
    • IE 处理 XML 数据类型的方式不同 — 与什么不同?以什么方式不同?
    • 好吧,我是说在 javascript ajax 调用中更改数据类型不在服务器上。
    • 哦,我看错了。对不起。但这仍然是错误的。 text/xml 不是dataType 的可接受值。 xml 是,但问题中的代码已经使用了它。
    • 使用示例代码更新答案以指定文本或 xml。抱歉英语不好
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多