如何在Javascript中加载本地JSON文件

20

我正在编写一个Web应用程序(实际上最终将成为OS X Dashboard小部件,但我决定先原型化为简单的网页),需要从本地JSON文件加载一些初始化数据。我的代码如下:

function loadDatos() {   
    var xobj = new XMLHttpRequest();
    xobj.overrideMimeType("application/json");
    xobj.open('GET', 'datos.json', true);
    xobj.onReadyStateChange = function () {
        if (xobj.readyState == 4) {
            var jsonTexto = xobj.responseText;
            ProcessTheData(jsonTexto);
        }
    }
    xobj.send(null);
}

这个函数是从HTML文件的BODY标签中的onLoad()事件中调用的。现在,从我调试时看到的情况来看,函数被执行了,但是onReadytStateChange事件处理程序却没有被调用。

我该怎么办?我认为使用XMLHttpRequest访问本地文件有点奇怪,但是我看到处理此问题的新教程似乎说它应该可以工作(我看到的99%的文档都是关于如何从远程服务器加载JSON,而不是从本地文件中加载)。

我正在使用Firefox 3.6.10进行测试,但我也尝试过Safari 4。


2
这就是为什么在所有不同的编程语言JSON客户端匆忙走向一种临时标准化之前,我在2005年就推动了在JSON对象声明之前加入一个赋值条款选项的原因:http://web.archive.org/web/20060212113746/htmatters.net/htm/1/2005/07/evaling-JSON.cfm - Dexygen
你想要application/json,但如果文件是本地的,它将没有该MIME类型。尝试注释掉覆盖。 - mplungjan
2个回答

9

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接