Кажется, что все браузеры, кроме Opera, кэшируют запросы XHR в моей программе Javascript. URL-адрес в запросе XHR относится к программе CGI на сервере, которая каждый раз генерирует разные выходные данные. B Есть ли в Javascript способ заставить браузер не кэшировать запросы XHR?
предотвратить кеширование браузера xmlHttpReq
Ответы (1)
Для каждого запроса AJAX, который вы делаете, создайте уникальное значение и добавьте его к URL-адресу ajax в качестве параметра запроса:
/example/url/post.php?rand=09809807896768
Я использую для создания текущей метки времени unix в JS и использую ее - это гарантирует, что я не получаю дубликаты меток.
Таким образом, каждый запрос уникален и не будет кэшироваться. Это простой, но довольно распространенный прием AJAX — обычно он устраняет проблемы с IE и тестированием.
Если вы использовали jQuery, он сделает это за вас, установив значение false для кеша свойств в Настройки AJAX.
person
Glycerine
schedule
21.10.2010
Я получаю сообщение об ошибке при попытке реализовать ваше решение:
request header field pragma is not allowed by "access-control-allow-headers"
. Есть идеи, как этого избежать? Посмотрите: stackoverflow.com/questions/23048184/
- person Luis A. Florit; 14.04.2014
@LuisA.Florit Я не только не вижу ответа на ваш комментарий (который может быть отдельным вопросом), но и ссылка, которую вы разместили, даже не работает. Чрезвычайный позор, так как у меня такая же проблема. :(
- person Zibbobz; 03.08.2020