Ответ 1
Добавление случайного числа в качестве параметра запроса на страницу, которую вы ищете для jQuery-AJAX, решит проблему; то есть.
$.ajax({
url: "/data.html?"+ Math.random(),
// other properties here...
});
У меня есть приложение HTML5, которое использует манифест кэша для обеспечения автономной работы. Это приложение делает вызовы ajax, когда он находится в сети, и некоторые из этих вызовов могут получить 403 неавторизованных в ответ.
В нижней части моего файла cache.manifest:
NETWORK:
*
FALLBACK:
/ /offline
Если я удаляю резервный раздел, все вызовы ajax, получающие ответ 403, работают как ожидалось, и я могу обнаружить это с помощью обработчика ошибок jQuery и перенаправить пользователя в форму входа.
Но если присутствует запасной раздел, то те же вызовы получают ответ 200 OK, причем резервный HTML-контент является телом, хотя сервер ответил с помощью 403, поэтому мне не нужно знать, что пользователь не аутентифицирован и должен отправляться на страницу входа.
Я что-то упустил? Спасибо заранее
Добавление случайного числа в качестве параметра запроса на страницу, которую вы ищете для jQuery-AJAX, решит проблему; то есть.
$.ajax({
url: "/data.html?"+ Math.random(),
// other properties here...
});
Из http://alistapart.com/article/application-cache-is-a-douchebag#latest
Вот ссылка, что ошибки могут возникать из-за сообщения о статусном коде как 0, который интерпретируется как сбой:
$.ajax( url ).always( function(response) {
// Exit if this request was deliberately aborted
if (response.statusText === 'abort') { return; } // Does this smell like an error?
if (response.responseText !== undefined) {
if (response.responseText && response.status < 400) {
// Not a real error, recover the content resp
}
else {
// This is a proper error, deal with it
return;
}
} // do something with 'response'
});