当我页面上的 JavaScript 加载包含 JavaScript Object Notation 格式的对象的文本文件时,我在 Firefox 3.0.7 的错误控制台中收到“格式不正确”的错误。如果文件只包含 JSON 对象,则会产生错误。如果我将对象包装在 <document></document> 标记中,则不会产生错误。无论哪种方式,请求都会成功,所以我可以忽略它,但我不希望我的错误日志填满这些消息。
这是一些示例代码来说明问题。首先,名为“data.json”的“格式不正确”的文件:
{ a: 3 }
现在一些代码来加载文件:
var req = new XMLHttpRequest();
req.open("GET", "data.json");
req.send(null);
这会在 Firefox 错误控制台中产生以下错误:
格式不正确的
file://path/to/data.json Line: 1
{ a: 3 }
- ^
如果 data.json 被修改成这样:
<document>{ a: 3 }</document>
没有错误。我认为它在抱怨是因为纯 JSON 文件不是格式良好的 XML 文档,所以我尝试在“发送”调用之前覆盖 MIME 类型以强制它作为纯文本加载,但这不起作用。
var req = new XMLHttpRequest();
req.open("GET", "data.json");
req.overrideMimeType("text/plain");
req.send(null);
// Still produces an error!
我将继续将我的 JSON 数据包装在 XML 文档中,以绕过 XMLHttpRequest 正在执行的任何验证,但我想知道是否有任何方法可以强制它不加批判地加载纯文本而不是尝试验证它。或者,除了 XMLHttpRequest 之外,还有另一种可以与纯文本一起使用的数据加载方法吗?