2014-02-18 39 views
-2

我不知道爲什麼,但我的函數重新加載圖像不起作用,但在開發上,它很好。 Url:http://www.gifolio.com/user/registerJS函數更新驗證碼圖像

點擊鏈接「無法讀取captcha?點擊這裏!」

圖像保持不變...但在我的開發中,它更新正常。

有什麼想法?

+0

圖像被緩存。 'generate_captcha'腳本是否禁用緩存?嘗試添加一個緩存破壞者的URL。 – Barmar

回答

4

添加緩存無效的網址,以避免緩存:

function reloadCaptcha() { 
    jQuery('#captcha_img').attr('src', '/user/generate_captcha?cb='+(new Date().getTime())); 
} 
+0

從技術上講,問題不是緩存,但瀏覽器不識別URL更改。 – rvighne

+0

它工作正常!謝謝 ! – zeflex

0

當您更改圖像的src時,瀏覽器不會獲取新圖像,因爲URL是相同的。要解決這個問題,你需要確保URL是唯一的。在您的功能中,將該行更改爲:

jQuery('#captcha_img').attr('src', '/user/generate_captcha?' + Date.now()); 

注意URL更改結束。這種方式瀏覽器總是認爲它獲得了一個新的形象,它會按預期工作。

+0

爲什麼不把一個Date Time添加到查詢字符串的末尾? – cgatian

+0

你爲什麼改變使用日期時間? – cgatian

+0

@cgatian剛剛意識到真正的問題不是服務器緩存控制,但瀏覽器不加載圖像,因爲URL是相同的。 – rvighne