一、问题产生
背景:前端呈现验证码图片,并且提供刷新功能,请求后端,后端提供验证码图片。问题:发现刷新功能失效。
关键代码:
<img th:src="@{/auth/genericImageLogin}" id="verifyCodeLoginImage" onclick="refreshVerifyCodeLogin()" style="width:82px;height:34px"/>说明:th:src="@{/auth/genericImageLogin}" 是 themeleaf 模板的使用写法,请求后端 java 程序。
function refreshVerifyCodeLogin(){ $("#verifyCodeLoginImage").attr('src', "/auth/genericImageLogin"); }
二、原因分析
图片不刷新是因为,验证码图片的请求地址是同一个,所以高版本的浏览器会默认读取缓存,即并不会向后端发出请求。三、问题解决
问题解决也就很简单了,那我们就保证每次请求的地址不一致不就ok了。所以我们就在请求地址后增加随机数参数。
function refreshVerifyCodeLogin(){ $("#verifyCodeLoginImage").attr('src', "/auth/genericImageLogin?"+Math.random()); }
文章评论