Как загрузить локальные файлы JSON в Javascript
Я пишу веб-приложение (ну, на самом деле это будет виджет 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 () в теге тела HTML-файла. Теперь, из того, что я вижу при отладке, функция выполняется, но обработчик событий onReadytStateChange никогда не вызывается.
что должен ли я это сделать? Я подумал, что было немного странно использовать XMLHttpRequest для доступа к локальному файлу, но новые учебники, которые я видел, которые касаются этой проблемы, похоже, говорят, что она должна работать (99% документов, которые я видел, говорят о том, как загрузить JSON с удаленного сервера, а не из локального файла).
Я тестирую Firefox 3.6.10, но я также пробовал с Safari 4.
2 ответов
onreadystatechange
собственность не имеет заглавных букв. См.: MDC XMLHttpRequest
Если мы не добавим расширение .json
и MIMETYPE application\json
, IIS выдаст ошибку.
смотрите здесь: http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/cd72c0dc-c5b8-42e4-96c2-b3c656f99ead.mspx?mfr=true