Работая над проектом, я просто делаю запрос AJAX для обработки некоторых данных.
Сервер, после выполнения задания, возвращает ответ HTTP 205 RESET CONTENT
Я использую этот код состояния, чтобы сообщить реквестеру reset вид документа
Вот фрагмент кода, который я использую
$.ajax({
url: '/unread',
method: 'PUT',
data: {
notifications: elements
}
}).done(function(content, message, xhr) {
if (205 !== xhr.status) {
// Generic error message
return;
}
window.location.reload(true)
}).fail(function() {
// Generic error message
})
Это отлично работает в Internet Explorer (8 и выше), Firefox (28.0) и Opera (12.16). Однако Chrome (33.0) и Opera (20.0) вместо обновления страницы загружает содержимое ответа загружаемой страницы dump при вызове window.location.reload
Вот что я пробовал
-
window.location.href = window.location.href
дает тот же результат -
history.go(0)
дает тот же результат - Если я удалю
window.location.reload
, ничего не перезагрузится - Удаление кеша, удаление локального состояния или переход в частную навигацию ничего не меняет
- Если я изменю код ответа (например, 204), он отлично работает
Вот визуальная сеть того, что происходит
Дополнительная информация (и более глубокие исследования)
- Я на Ubuntu 12.04
- Ошибка может быть воспроизведена на другом компьютере с Windows 7 (версия с одним и тем же хромом)
- Ошибка не может быть воспроизведена на другом компьютере с Debian 7.1 (версия с одним и тем же хромом)
Почему Chrome и Opera ведут себя так, как в ответе 205
HTTP?