【发布时间】: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 解析错误:标签不匹配。预期:
</input>。 地点: 第 1 行,第 15 列:
我完全不知道是什么导致了这个错误。实际脚本成功运行,但在我的文件中没有一个 <input>(或 <input />)。
隔离后,这是文件中剩下的唯一 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