20

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

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。

4

2 回答 2

9

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

于 2010-10-09T16:16:13.450 回答
1

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

见这里:http ://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/cd72c0dc-c5b8-42e4-96c2-b3c656f99ead.mspx?mfr=true

于 2013-01-23T10:57:08.513 回答