У меня есть эта странная проблема с Chrome. Часто не хватает кэширования запросов PUT.
Детали: У меня есть приложение, использующее backbone.js, и при попытке сохранить некоторые изменения в модели (магистраль автоматически генерирует запрос 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();
}