Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JS函数更新验证码图像_Javascript_Jquery - Fatal编程技术网

Javascript JS函数更新验证码图像

Javascript JS函数更新验证码图像,javascript,jquery,Javascript,Jquery,我不知道为什么,但是我的重新加载图像的功能在prod上不起作用,但是在dev上,它很好。 网址: 点击链接“无法读取验证码?点击这里!” 图像保持不变。。。但在我的dev上,它更新得很好 有什么想法吗?当您更改图像的src时,浏览器不会获得新图像,因为URL是相同的。要修复此问题,您需要确保URL是唯一的。在reloadCaptcha功能中,将更改行设置为: jQuery('#captcha_img').attr('src', '/user/generate_captcha?' + Date.n

我不知道为什么,但是我的重新加载图像的功能在prod上不起作用,但是在dev上,它很好。 网址:

点击链接“无法读取验证码?点击这里!”

图像保持不变。。。但在我的dev上,它更新得很好


有什么想法吗?

当您更改图像的src时,浏览器不会获得新图像,因为URL是相同的。要修复此问题,您需要确保URL是唯一的。在
reloadCaptcha
功能中,将更改行设置为:

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

请注意URL末尾的更改。这样,浏览器总是认为它得到了一个新的图像,它会按预期工作。

在URL中添加一个缓存buster以防止缓存:

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

正在缓存图像。
生成验证码脚本是否禁用缓存?尝试向URL添加缓存阻止程序。为什么不在查询字符串末尾添加日期时间?为什么更改为使用日期时间?@cgatian刚刚意识到真正的问题不是服务器缓存控制,而是浏览器没有加载图像,因为URL是相同的。从技术上讲,问题不是缓存,而是浏览器无法识别图像URL更改。