У меня странная проблема с Chrome. Довольно часто появляется кэширование запросов PUT.
Детали:У меня есть приложение, использующее backbone.js, и при попытке сохранить некоторые изменения в модели (backbone автоматически генерирует запрос PUT ), Chrome просто не отправляет этот запрос на сервер. Он отлично работает в Firefox и IE (пока не видел проблем в Safari ).
Вот снимок экрана с вкладки «Сеть» инструментов разработчика Chrome. Как видите, ответ на запрос PUT возвращается из кеша (, запрос не попадает на сервер!!)
Вот скриншот сведений о заголовке того же запроса. И снова очевидно, что Chrome не удосуживается отправить запрос PUT на сервер.
Полезной нагрузкой запроса являются данные JSON. Любые мысли о том, почему это происходит / что я делаю неправильно?
ОБНОВЛЕНИЕ:Chromium подтвердил, что это действительно ошибка на его конце(благодаря Яну Ханчичу ).
ВРЕМЕННОЕ РЕШЕНИЕ В итоге я переопределил метод Backbone.sync
и добавил метку времени к строке запросов PUT, POST и DELETE, чтобы они всегда были уникальными:
if(!options.data && model && (method == 'create' || method == 'update' || method == 'delete')) {
params.url += (params.url.indexOf('?') == -1 ? '?' : '&') + '_=' + new Date().getTime();
}