Получение ResponseText без вызова сервлета с использованием xmlhttprequest в IE (любая версия) - PullRequest
0 голосов
/ 29 октября 2010

Я использую xmlhttprequest для вызова сервлета. Он отлично работает в Firefox. Но в IE, только если я нажимаю кнопку обновления, это работает (что тоже иногда). В противном случае это не срабатывает. Более того, текст ответа отображается без вызова сервлета. Это с использованием кэша или как? Понятия не имею. Помоги мне, пожалуйста.

Ответы [ 3 ]

1 голос
/ 29 октября 2010

MSIE слишком старается кэшировать запросы XHR. Единственный реальный способ обойти это - добавить строку запроса с меткой времени к URL-адресу XHR.

var url = '/url/to/your/servlet?' + new Date().getTime();
0 голосов
/ 26 мая 2011

Чтобы обойти IE по zelous кешированию xhr, вы должны заставить свой сервлет добавить

Cach-Control:max-age=0

к заголовкам ответов всех файлов html и .js.

Это приведет к повторной проверке всех файлов с этим ответом, при следующем запросе их у IE, включая XHR. (must-revalidate, похоже, не работает с загруженным xhr файлом сценария Java, не знаю почему) После этого обязательно очистите кэш IE, чтобы он вступил в силу при следующей загрузке.

IE будет вести себя хорошо с этой настройкой. Но, конечно, не запускайте это в производство.

0 голосов
/ 04 ноября 2010

Спасибо всем и каждому. На самом деле, я использовал «GET» вместо «POST» при вызове сервлета в javascript. Когда я попробовал POST, он работал нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...