Как загрузить локальные файлы JSON в Javascript - PullRequest
20 голосов
/ 09 октября 2010

Я пишу веб-приложение (ну, на самом деле это будет в конечном итоге виджет 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);
}

Функция вызывается из события onLoad () в теге BODY HTML-файла. Теперь, как я вижу при отладке, функция выполняется, но обработчик события onReadytStateChange никогда не вызывается.

Что мне делать? Я думал, что было немного странно использовать XMLHttpRequest для доступа к локальному файлу, но новые учебники, которые я видел по этой проблеме, похоже, говорят, что это должно работать (99% документов, которые я видел, говорят о том, как загрузить JSON с удаленного сервера, а не из локального файла).

Я тестирую с использованием Firefox 3.6.10, но я также пробовал с Safari 4.

Ответы [ 2 ]

9 голосов
/ 09 октября 2010

onreadystatechange свойство не имеет заглавных букв. См .: MDC XMLHttpRequest

1 голос
/ 23 января 2013

Если мы не добавим расширение .json и MIMETYPE application\json, IIS выдаст ошибку.

Смотрите здесь: http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/cd72c0dc-c5b8-42e4-96c2-b3c656f99ead.mspx?mfr=true

...