Как остановить кеширование страниц AJAX в Internet Explorer - PullRequest
1 голос
/ 01 августа 2011

Я не использую JQuery или любую другую библиотеку. У меня просто есть файл PHP, который выдает результат JSON, и мой JavaScript работает соответственно.

К сожалению, я только что провел час, стуча головой о стену, пытаясь понять, почему я получаю «неопределенное» для одной из моих переменных, где я ЗНАЮ Я установил ее в моем выводе php.

Я наконец-то понял это: я сразу перешел на страницу php в IE и обнаружил, что она имеет кэшированный результат (т.е. до того, как я добавил эту переменную в строку JSON). Как только я нажал «Обновить», он получил новую страницу, и мой код неожиданно начал работать.

Как я могу заставить IE (и другие браузеры) не кэшировать мои AJAX-страницы, так как они, вероятно, все равно будут часто меняться?

Ответы [ 4 ]

4 голосов
/ 01 августа 2011

Добавить временную метку или что-то случайное к вашему запросу

или

Использовать POST вместо GET

3 голосов
/ 01 августа 2011

Обычным способом является добавление метки времени к рассматриваемому URL, например,

var url += url.indexOf("?") == -1 ? "?" : "&";
url += "_=" + new Date().getTime();
2 голосов
/ 01 августа 2011

Установите заголовок экспиратона правильно в ответ или добавьте случайный или временный фальшивый параметр в запрос.

0 голосов
/ 09 октября 2014

Добавьте URL либо с Time, как предложено другими, либо используйте следующее:

var rand = Math.floor(Math.random()*10000);

url = page.php?v=var&r=rand;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...