2014-02-18 35 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