当我页面上的 JavaScript 加载包含 JavaScript 对象表示法格式的对象的文本文件时,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 行: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 之外,还有另一种加载数据的方法可以与纯文本一起使用吗?