【发布时间】: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"));
});
}
});
当我使用 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 有什么问题。