Как предотвратить кэширование запроса jQuery Ajax в Internet Explorer?

Как предотвратить кэширование запроса jQuery Ajax в Internet Explorer?

5 ответов


вы можете отключить кэширование глобально, используя $.ajaxSetup(), например:

$.ajaxSetup({ cache: false });

это добавляет метку времени к строке запроса при выполнении запроса. Чтобы отключить кэш для конкретного $.ajax() звонок, набор cache: false на нем локально, как это:

$.ajax({
  cache: false,
  //other options...
});

Если задать уникальные параметры, то кэш не работает, например:

$.ajax({
    url : "my_url",
    data : {
        'uniq_param' : (new Date()).getTime(),
        //other data
    }});

Cache-Control: no-cache, no-store

эти два значения заголовка могут быть объединены, чтобы получить необходимый эффект на IE и Firefox


вот ответное предложение:

http://www.greenvilleweb.us/how-to-web-design/problem-with-ie-9-caching-ajax-get-request/

идея состоит в том, чтобы добавить параметр в ваш запрос ajax, содержащий, например, текущую дату, поэтому браузер не сможет кэшировать его.

посмотрите на ссылку, это хорошо объяснено.


Это старый пост, но если IE дает вам неприятности. Измените запросы GET на POST, и IE больше не будет кэшировать их.

Я потратил слишком много времени, выясняя это трудным путем. Надеюсь, это поможет.