2013-05-17 75 views
3

所以我想通过使用Microsoft.XMLHTTP ActiveXObject从Windows小工具中检索经常变化的一些JSON数据。问题是它返回页面的缓存版本,而不是请求新版本。Microsoft.XMLHTTP - 如何防止缓存?

我没有控制服务器,我不能使用通常的黑客发送额外的参数,因为如果我发送任何参数服务器返回错误。

我用google搜索了这个死亡和最好的信息是在this Stackoverflow的问题,但没有答案为我工作;我一直无法从gadget Javascript中找到使用ServerXMLHTTP的方法。我如何使用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