2011-05-13 108 views
0

我有一個使用JQuery和GET方法的ajax調用(JSONP)。我想因爲我使用GET,它會將瀏覽器歷史記錄中的參數與參數一起保留。那麼,如何讓它不會保存在瀏覽器歷史記錄中呢?如何讓ajax(JSONP)GET請求不留任何瀏覽器歷史記錄?

將Jquery.ajax屬性「cache」設置爲false工作嗎?

請指教。


感謝所有的答案&想法

我詢問有關歷史的事情的原因是,我用的是ajaxp進行登錄(帶密碼)。我的PM非常擔心在歷史記錄中留下痕跡(默認情況下或螢火蟲)。 因此,我想知道如何處理它。當然,現在我意識到瀏覽器默認情況下不會跟蹤ajaxp,但任何插件都可能留下痕跡。

最後,我的解決方案是:

1)設置無緩存服務器的響應。

2)我做了兩次旅行。第一個Ajax要求服務器輸入密鑰&,然後JS使用該值對數據進行加密,並在第二次調用中使用密鑰發送加密數據。 JS會刪除這個值(或者只保留在回調關閉中)。服務器將使用密鑰從數據庫(或服務器緩存,以及我實際使用mongodb)檢索值。然後使用該值來解密數據並獲取登錄密碼&。

謝謝你們。

+0

將緩存設置爲false,只需確保該請求不會通過在URL末尾添加隨機ID來擊中瀏覽器緩存。 – 2011-05-13 11:48:42

回答

2

你可以設置你的服務器端腳本來發送禁止瀏覽器和代理緩存這些頁面標題:

Expires: Thu, 19 Nov 1981 08:52:00 GMT 
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 
Pragma: no-cache 

上述頭從PHP manual for session_cache_limiter複製。

1

我想是因爲我用得到的,它會留下的網址,在瀏覽器歷史記錄的參數

歷史和緩存是不同的概念一起。 Ajax請求不記錄在瀏覽器歷史記錄中。甚至有plugins允許您通過操縱網址的散列部分來實現此目的。

就緩存而言,GET請求確實可能被瀏覽器緩存。 cache: false屬性禁用緩存並確保服務器將被命中以獲取新版本的資源。

+0

JSONP請求怎麼樣? – murvinlai 2011-05-13 11:50:29

+0

@murvinlai,這些不是AJAX請求。在jQuery中,他們通過在指向遠程資源的DOM中注入'