Браузер 200 (кэшированный) принудительная перезагрузка

Я разрабатываю AngularJS 1.3.7 front-end приложение с C# back-end API. Совсем недавно добавлено кэширование на серверную сторону, которое теперь вызывает головную боль. Так как Get-запросы задает заголовок Cache-control браузер после выполнения запроса один раз, кэширует ответ API. После кэширования данных серверная часть корректно аннулирует кэш после выполнения любого запроса POST/PUT / DELETE к контроллеру серверов. Проблема в том, что браузер (в моем случае Chrome) обновляет кэш только в том случае, если запрос (POST/PUT/DELETE) был сделан на тот же URL.


Рабочий пример последовательности: GET www.bestGames.com/games — > сообщение www.bestGames.com/games — > > GET www.bestGames.com/games (Кэш был очищен и данные были правильно обновлены).

Не работает: получить www.bestGames.com/games — > PUT www.bestGames.com/games/20 — > > GET www.bestGames.com/games (не обновляет кэш, показывая старые данные).

Не работает: получить www.bestGames.com/games — > PUT www.bestGames.com/games?id=20 — > > GET www.bestGames.com/games (не обновляет кэш, показывая старые данные).

Работа: получить www.bestGames.com/games — > PUT www.bestGames.com/games — > > GET www.bestGames.com/games (Кэш был очищен и данные были правильно обновлены).

Таким образом, нет другого способа обновить кэш браузера, кроме:

  • Добавить что-то вроде «?=random » получить запрос
  • Добавление дополнительного запроса к www.bestGames.com/games просто очистить кэш браузера.

1 ответ