Как предотвратить запрос кеширования jQuery Ajax в Internet Explorer?
Как предотвратить запрос jQuery Ajax от кеширования в Internet Explorer?
Ответ 1
Вы можете отключить кеширование глобально, используя $.ajaxSetup()
, например:
$.ajaxSetup({ cache: false });
Это добавляет временную метку к запросу при выполнении запроса. Чтобы отключить кеш для определенного вызова $.ajax()
, установите cache: false
на нем локально, например:
$.ajax({
cache: false,
//other options...
});
Ответ 2
Если вы задаете уникальные параметры, кеш не работает, например:
$.ajax({
url : "my_url",
data : {
'uniq_param' : (new Date()).getTime(),
//other data
}});
Ответ 3
Cache-Control: no-cache, no-store
Эти два значения заголовка могут быть объединены, чтобы получить необходимый эффект как для IE, так и для Firefox
Ответ 4
Вот предложение ответа:
http://www.greenvilleweb.us/how-to-web-design/problem-with-ie-9-caching-ajax-get-request/
Идея состоит в том, чтобы добавить параметр в ваш запрос ajax, содержащий, например, текущую дату, поэтому браузер не сможет кэшировать его.
Посмотрите на ссылку, это хорошо объяснено.
Ответ 5
Это старый пост, но если IE дает вам проблемы. Измените свои запросы GET на POST, и IE больше не будет кэшировать их.
Я потратил слишком много времени на то, чтобы понять это с трудом. Надеюсь, что это поможет.