Как жестко обновить Internet Explorer с очистить кеш после отправки формы? - PullRequest
1 голос
/ 20 мая 2019

Существует веб-страница, которая взаимодействует с веб-сервером для изменения значений в активном каталоге.

При доступе в Chrome я могу изменить данные, и после отправки формы отображаются новые значения. Между тем в Internet Explorer этого нет. Само изменение данных происходит, поэтому, когда я что-то изменяю в IE и обновляю страницу в Chrome, отображаются новые значения. Но в IE я нажимал F5 и Control + F5, он все еще показывает старые значения. Я пытался использовать location.reload(true); перед отправкой формы, но то же самое.

Только когда я закрываю IE-окно и перезапускаю его, отображаются новые значения.

Как я могу выполнить жесткий сброс страницы для IE и получить фактические значения после отправки формы? Как я мог запретить IE записывать что-либо в кеш или очищать его?

1 Ответ

1 голос
/ 20 мая 2019

Проблема здесь в том, что IE будет кэшировать результат API по умолчанию.

Например, у вас есть возвращаемый профиль пользователя API, и на странице отображаются данные, полученные API.После того, как вы обновите профиль пользователя и повторите выборку, API-интерфейс должен вернуть новые данные.Он работает как положено в Chrome и других браузерах, однако IE вернет старые данные, которые были извлечены в первый раз.Вторая выборка не достигает сервера, потому что браузер IE немедленно возвратил старые данные.

Как исправить?

Вы можете добавить заголовок cache-control http, чтобы явно указать, что браузер недля его кэширования это можно сделать, установив для заголовка Cache-Control http значение no-cache.

Если вы используете koa js, вы можете сделать это:

ctx.res.setHeader('Cache-Control', 'no-cache')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...