【问题标题】:JQuery - Random "XML Parsing Error: mismatched tag"JQuery - 随机“XML 解析错误:标签不匹配”
【发布时间】:2018-04-26 15:33:06
【问题描述】:

我有以下 (jquery) javascript:

$.ajax({
  type: "GET",
  url: "%URL HERE%",
  dataType: "xml",
  async: false,
  success: function(xml) {
    console.log(xml);
    var root = $(xml).find("root");
    var child = root.find("child");
    console.log(child);
  },
  error: function(){
    console.log("error encountered while fetching xml");
  } 
});

获取以下 XML 文件:

<?xml version="1.0" encoding="UTF-8"?>
<root>
    <child id="test1">Content</child>
</root>

哪个做了它应该做的,除了在成功执行代码并记录正确的数据之后一点点,控制台中弹出以下错误:

XML 解析错误:标签不匹配。预期:&lt;/input&gt;。 地点: 第 1 行,第 15 列:

我完全不知道是什么导致了这个错误。实际脚本成功运行,但在我的文件中没有一个 &lt;input&gt;(或 &lt;input /&gt;)。

隔离后,这是文件中剩下的唯一 javascript(连同指向 jquery cdn 的链接),因此也不会出现另一段代码抛出此问题。

它似乎也根本没有中断代码,只是在完成 ajax 调用之后每次都会弹出这个随机错误 - 特别是在完成 $(xml).find("root") 之后。如果我将此注释掉,则会发生 ajax 请求,但不会弹出错误 - 但是我的代码显然也不起作用!

我希望任何人都可以告诉我为什么会出现这个错误,因为我已经盯着这个问题看了好几个小时了,但我似乎越来越理解它了......

【问题讨论】:

  • 您是否尝试过console.log() 发生错误时的响应,以确保返回的 XML 完全与您期望的一样?
  • 是的,如示例代码所示,我记录了 XML,它似乎返回了应有的 XML。毕竟成功完成后才会发生错误。
  • 每次执行此代码时都会出现错误吗?即,这可能是您的 HTML 的问题,还是将消息转储到控制台的浏览器插件的问题?如果每次运行并重新运行这段sn-p代码时都显示(不是页面重新加载,只是执行了这段sn-p代码),那么可能是由这段代码引起的。
  • 是的,每次执行此代码时都会发生这种情况。如果我一个接一个地运行 4 次,错误也会弹出 4 次。我将此代码放在一个完全基本的 HTML 文件(空正文和内容)中,以排除任何与 HTML 相关的问题,但它仍然会发生。另外,我不使用浏览器插件,但即便如此,它也会发生在我的跨浏览器中。
  • jQuery 版本?

标签: javascript jquery ajax xml parsing


【解决方案1】:

使用较新版本的 jQuery 后,该错误不再出现。我以前不知何故使用 jQuery 1.10.1,现在是 3.3.1,这消除了错误。

【讨论】:

    猜你喜欢
    • 2015-07-10
    • 2014-04-26
    • 2012-08-16
    • 2015-12-05
    • 2013-12-16
    • 1970-01-01
    • 1970-01-01
    • 2018-03-03
    • 1970-01-01
    相关资源
    最近更新 更多