【问题标题】:jquery ajax request to xml resource yields "not well-formed" error in Firefox对 xml 资源的 jquery ajax 请求在 Firefox 中产生“格式不正确”的错误
【发布时间】:2015-05-26 14:34:11
【问题描述】:

我知道这个问题已经被问过很多次了,但是那里给出的答案对我不起作用。

我想我正在做一个非常常见的请求来获取 xml 资源:

$(document).ready(function() {
    $.ajax({
      type: "GET",
      url: "data.xml",
      dataType: "xml",
      success: function(xml) {
        $(xml).find("main").each(function() {
          alert($(this).attr("val"));
        });
      }
    });

完整文件可以在here找到,xml资源可以在here找到。

当我使用 Firefox 36.0.4 访问它时,正如预期的那样,我收到了“hello world”警报,但 javascript 控制台列出了错误:

http://esel7353.org/:无法运行脚本,因为脚本在内部被阻止。

格式不正确:1:76

在此处提出的许多问题中,响应中的内容类型标头不准确,但在我的情况下,服务器告诉 firefox,data.xml 是 application/xml。

此外,mimeType 选项也无济于事。

我还制作了一个干净的 FF 配置文件,以确保这不是由插件引起的,但错误消息仍然存在。

【问题讨论】:

  • FF 36 和 chrome 41 完全没有错误...
  • 我已经在运行 ubuntu 和 arch linux 的两台计算机上对其进行了测试,在这两台计算机上我都遇到了同样的错误。我同意 chrome 不报告任何内容。
  • 在一个带有 win 7 和 FF 34、35、36 的虚拟机上我得到了同样的错误。
  • 查看这篇文章stackoverflow.com/questions/677902/…,尤其是这条评论:“req.overrideMimeType("application/json"); req.send(null); works”。也许它会有所帮助(当然用 xml 替换 json)...
  • 我也读过,确实有效:esel7353.org/json.htm,但我想知道 xml 有什么问题。

标签: jquery ajax xml firefox


【解决方案1】:

我在another question 中写了这篇文章 - 但由于你的问题也没有得到解答,我也会在这里发布。


我不能肯定它会解决您的问题,但我在 Firefox 中遇到了类似的“格式不正确”消息。原来 jQuery 1.11.2 和 1.11.3 中存在一个错误 - https://github.com/jquery/jquery/issues/1969 - 在上游已修复。

如果您在服务器上托管 jquery,这是一个相对较小的变化 - 请参阅 github commit

在 jquery.1.11.3.js 行 cca 1197(在 QSA/matchesSelector 部分):

 -              "<select id='" + expando + "-\f]' msallowcapture=''>" +
 +              "<select id='" + expando + "-\r\\' msallowcapture=''>" +

希望很快会有新版本。

【讨论】:

    猜你喜欢
    • 2012-04-17
    • 2021-12-11
    • 1970-01-01
    • 1970-01-01
    • 2015-05-28
    • 2011-07-21
    • 2016-04-08
    • 1970-01-01
    • 2012-08-22
    相关资源
    最近更新 更多