2013-05-17 3 views
3

Так что я хочу получить некоторые данные JSON, которые часто меняются из гаджета Windows с помощью Microsoft.XMLHTTP ActiveXObject. Проблема в том, что он возвращает кешированную версию страницы вместо запроса новой.Microsoft.XMLHTTP - как предотвратить кеширование?

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

Я искал это до смерти, и лучшая информация находится в вопросе this Stackoverflow, но ни один из ответов не работает для меня; Я не смог найти способ использовать ServerXMLHTTP из гаджета Javascript. Как я могу использовать ServerXMLHTTP или предотвратить кеширование способом, отличным от добавления случайного параметра в URL?

ответ

3

попробовать использовать POST вместо GET

request = new ActiveXObject("Microsoft.XMLHTTP"); 
request.onreadystatechange = callback; 
request.open("POST", "server.php", true); 
request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
request.send(); 

ссылки: Prevent Chrome from caching AJAX requests и мой собственный опыт.

+1

Это на самом деле отличная идея, поскольку POST обычно не кэшируется, в то время как GET обычно есть. К сожалению, в моем случае сервер не принимает запросы POST. :( – Domchi

+0

Я использовал jQuery $ .get и был смущен, почему он не освежает. Я перешел на $ .post, и он начал работать, поэтому я могу подтвердить, что он работает. Спасибо за этот ответ. – kfinto

0

Не можете ли вы добавить случайный элемент в конец вашего URL? http://acme.com/someapp/rest/someendpointurl?randombit=20171701143500

+0

Нет, сервис, который я реализую проверяет все параметры и возвращает ошибку по случайному параметру, и я не контролирую API-интерфейс службы. – Domchi

Смежные вопросы