当页面上的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行: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之外,还有没有其他可用于纯文本的加载数据的方法?