2013-11-19 2 views
0

Как убедиться, что в jQuery сервер отвечает 304 только после успешного запроса 200.jQuery ajax получает 304 до 200

Я вижу эту проблему, когда клиент (браузер, создающий вызов jquery.ajax()) закрывает соединение, а последующие запросы от клиента к серверу приводят к 304 ответному коду.

Файл, обслуживаемый, является статическим файлом.

+0

Это звучит как файл кэшируется -Ты не хочешь этого? – thatidiotguy

+0

Действительно ли это [сообщение] (http://stackoverflow.com/a/10579657/623952)? –

+0

Эй, @thatidiotguy, да, файл кэшируется, но я сомневаюсь, что полный файл подан в первый запрос. Я предполагаю, что клиент закрыл соединение во время загрузки, поэтому не имеет полного файла. Но последующие запросы читают этот неполный файл кеша. Можно ли отключить это на стороне клиента/сервера – user462455

ответ

2

Это будет кэш браузера, в результате чего 304 Not Modified заголовка При выполнении Ajax вызова на тот же файл, вам необходимо включить кэширование так:

$.ajax({ 
    url : 'whatever.html', 
    type : 'POST', 
    cache : false 
}) 
+0

Спасибо. Вы знаете, возможно ли серверу обслуживать 304 пользователя до успешного ответа 200. – user462455

+0

Нет, это не так, ваш заголовок может содержать только один код ответа для запроса, так что это либо. Вы можете включить кеширование для этого файла на сервере, но как это сделать, зависит от сервера, который вы используете, и от того, как он настроен? – adeneo

+0

Я думаю, что я не был ясен. Я имел в виду, что сервер может ответить с кодом 304, прежде чем он ответит кодом ответа 200. Предположим, что клиент начинает загрузку файла, но заканчивает его между ними. Каким будет код ответа для этого убитого запроса. И какой будет код ответа для последующих запросов. – user462455

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