2010-10-09 2 views
19

Я пишу веб-приложение (ну, в конце концов, это будет виджет OS X Dashboard, но я решил сначала прототипировать его как простую веб-страницу), которому необходимо загрузить некоторые инициализация данных из локального файла JSON. Мой код выглядит следующим образом:Как загрузить локальные файлы JSON в Javascript

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

Вот почему я толкал для варианта оговорки назначения предшествует декларацию объекта JSON в 2005 году, прежде чем все различные языка программирования клиентов JSON кинулись к специальной стандартизации: HTTP: //web.archive.org/web/20060212113746/htmatters.net/htm/1/2005/07/evaling-JSON.cfm –

+0

Вы хотите приложение/json, но если файл является локальным, у него не будет такого типа mime , Попробуйте прокомментировать переопределение – mplungjan

ответ

Смежные вопросы