Chrome кэширует HTTP-запрос PUT

У меня странная проблема с Chrome. Довольно часто появляется кэширование запросов PUT.

Детали:У меня есть приложение, использующее backbone.js, и при попытке сохранить некоторые изменения в модели (backbone автоматически генерирует запрос PUT ), Chrome просто не отправляет этот запрос на сервер. Он отлично работает в Firefox и IE (пока не видел проблем в Safari ).

Вот снимок экрана с вкладки «Сеть» инструментов разработчика Chrome. Как видите, ответ на запрос PUT возвращается из кеша (, запрос не попадает на сервер!!) Chrome caches PUT request

Вот скриншот сведений о заголовке того же запроса. И снова очевидно, что Chrome не удосуживается отправить запрос PUT на сервер.Chrome cached PUT request header

Полезной нагрузкой запроса являются данные 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();
}

10
задан anushr 1 August 2012 в 21:58
поделиться