2010-10-21 101 views
10

似乎除Opera緩存XHR請求之外的所有瀏覽器都在我的Javascript程序中。 XHR請求中的URL指的是服務器上的CGI程序,它每次調用時都會生成不同的輸出。 B 在Javascript中有沒有辦法讓瀏覽器不緩存XHR請求?阻止xmlHttpReq的瀏覽器緩存

回答

10

您每一次的AJAX請求,生成一個唯一的值,並將其添加到AJAX URL作爲查詢參數:

/example/url/post.php?rand=09809807896768 

我用它來生成JS當前Unix時間戳和使用 - 這保證我沒有得到重複的郵票。

這樣每個請求都是唯一的,不會被緩存。這是一個簡單但相當常見的AJAX技巧 - 通常修復IE和測試問題。

如果您要使用jQuery,它可以通過在AJAX settings上將屬性緩存設置爲false來執行此操作。

+0

謝謝。我嘗試添加新的Date()。getTime(),它也起作用。 – Girish 2010-10-21 07:06:58

+0

我試圖實現您的解決方案時出現錯誤:「訪問控制允許標題」不允許請求標頭字段編譯指示。任何想法如何避免這種情況?看:http://stackoverflow.com/questions/23048184/xmlhttprequest-with-no-cache-request-header-is-not-allowed – 2014-04-14 00:19:11