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

如何在Javascript中加载本地JSON文件,javascript,json,dashboard,Javascript,Json,Dashboard,我正在编写一个web应用程序(实际上,它最终将成为一个OSX仪表板小部件,但我决定先将其原型化为一个简单的网页),它需要从本地JSON文件加载一些初始化数据。我的代码如下所示: function loadDatos() { var xobj = new XMLHttpRequest(); xobj.overrideMimeType("application/json"); xobj.open('GET', 'datos.json', true); xobj.

我正在编写一个web应用程序(实际上,它最终将成为一个OSX仪表板小部件,但我决定先将其原型化为一个简单的网页),它需要从本地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()事件调用函数get。现在,从我在调试时看到的情况来看,该函数被执行,但OnReadyStateChange事件处理程序从未被调用

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


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

onreadystatechange
属性没有大写字母。请参阅:

除非我们添加扩展名
.json
和MIMETYPE
application\json
,否则IIS将抛出错误


请参见此处:

这就是为什么我在2005年推动在JSON对象声明之前使用赋值子句的选项,当时所有的编程语言JSON客户端都争先恐后地进行特殊的标准化:您想要应用程序/JSON,但如果文件是本地的,它就不会有那种mime类型。尝试对覆盖进行注释