2013-05-17 105 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