предотвратить кеширование браузера xmlHttpReq

Кажется, что все браузеры, кроме Opera, кэшируют запросы XHR в моей программе Javascript. URL-адрес в запросе XHR относится к программе CGI на сервере, которая каждый раз генерирует разные выходные данные. B Есть ли в Javascript способ заставить браузер не кэшировать запросы XHR?


person Girish    schedule 21.10.2010    source источник


Ответы (1)


Для каждого запроса AJAX, который вы делаете, создайте уникальное значение и добавьте его к URL-адресу ajax в качестве параметра запроса:

/example/url/post.php?rand=09809807896768

Я использую для создания текущей метки времени unix в JS и использую ее - это гарантирует, что я не получаю дубликаты меток.

Таким образом, каждый запрос уникален и не будет кэшироваться. Это простой, но довольно распространенный прием AJAX — обычно он устраняет проблемы с IE и тестированием.

Если вы использовали jQuery, он сделает это за вас, установив значение false для кеша свойств в Настройки AJAX.

person Glycerine    schedule 21.10.2010
comment
Я получаю сообщение об ошибке при попытке реализовать ваше решение: request header field pragma is not allowed by "access-control-allow-headers". Есть идеи, как этого избежать? Посмотрите: stackoverflow.com/questions/23048184/ - person Luis A. Florit; 14.04.2014
comment
@LuisA.Florit Я не только не вижу ответа на ваш комментарий (который может быть отдельным вопросом), но и ссылка, которую вы разместили, даже не работает. Чрезвычайный позор, так как у меня такая же проблема. :( - person Zibbobz; 03.08.2020