Невозможно получить доступ к кэшированным файлам манифеста с помощью AJAX из веб-приложения, сохраненного на главном экране в устройствах iOS, с помощью jQuery.ajax ()

Я делаю веб-приложение. Некоторые из загружаемых файлов содержат чистые статические данные в формате JSON. Я использую jQuery.ajax () (jQuery 1.5.2) с dataType: 'json' и cache: true. Все работает нормально и все файлы загружаются. Я также настроил манифест кеша для кеширования этих файлов JSON (в дополнение к css, js, и изображения). Там тоже все работает хорошо - когда пользователь посещает мой сайт, все файлы, которые мне нужны, правильно кешируются (у меня есть обработчики событий applicationCache, которые подтверждают, что все в порядке). Я все протестировал в Google Chrome и вижу, что все файлы (включая JSON) кешируются. Когда я отключаюсь от сети, все работает (вызовы jQuery ajax автоматически извлекают кешированные файлы JSON).

Сейчас я пытаюсь протестировать это на мобильном Safari (на реальном iPad и симуляторе iPhone). В Safari все работает должным образом - страницы кэшируются, и при последующих посещениях с отключенной сетью используются кешированные файлы.

Однако, когда я добавляю приложение на главный экран с помощью команды «добавить на главный экран» в Safari, приложение запускается, и все .js, .css и изображения работают правильно, НО мои вызовы Ajax - нет! У них нет доступа к кешированным файлам .json. Для каждого вызова Ajax XMLHttpRequest.status равно 0 , .statusText - это ошибка , но getAllResponse () 11105720] показывает те же (правильные) заголовки, что и в функциональном приложении в Safari.

Я не понимаю. Это ограничение / ошибка в jQuery .ajax () или что? Любая помощь приветствуется.

11
задан ampersand 28 April 2011 в 20:37
поделиться