之前的验证码写法如下:
<img id="checkCodeImg" title="看不清?请点击图片更换!"
align="absmiddle" src="<%=request.getContextPath() %>/basic/user/validNumGenerate.action"
onclick="refreshCheckCode();"/>
function refreshCheckCode(){
document.getElementById("checkCodeText").value="";
//注意后面必须要加上随机数 否则浏览器不会向服务器发送请求
document.getElementById("checkCodeImg").src="<%=request.getContextPath() %>/basic/user/validNumGenerate.action?rnd="+Math.random();
}
在几个浏览器里面测试都没问题,但是最近还是发现了一个bug,就是在IE浏览器地址栏里面输入地址栏后,回车,第一次验证码图片刷新,但是再按回车键的时候,就不刷新了。在chrome里面是不存在这个问题。
首先想到的就是缓存问题,IE浏览器在获取图片的时候,看到src的地址没有变化,就没有去服务器重新获取图片,导致验证码不刷新,为了弄清楚这个问题,我对IE浏览器进行了如下设置:

这个时候再进行上面的测试,发现验证码刷新了,那就证明确实是缓存导致的。
我们不能要求所有的用户都把IE浏览器进行上面的设置,因此我们只能改进自己的代码,修改之后的代码如下:
<img id="checkCodeImg" title="看不清?请点击图片更换!" align="absmiddle"
src="<%=request.getContextPath() %>/basic/user/validNumGenerate.action?<%=System.currentTimeMillis()%>"
onclick="refreshCheckCode();"/>
在图片的src后面加上一个时间戳,这样确保每次的src地址都不一样,这样浏览器每次都会到服务器上重新获取图片了。

- 大小: 68.6 KB
分享到:
相关推荐
验证码在不同浏览器中表现不一致的问题常常困扰着开发者,尤其是IE浏览器因其独特的缓存机制,可能会导致验证码无法正常刷新。本文将深入探讨这个问题,并提供一个有效的解决方案。 首先,验证码的主要目的是为了...
总结起来,验证码在IE中不刷新主要是因为浏览器缓存机制。通过在URL后添加随机参数或者调整服务器的缓存策略,可以有效地解决这个问题,确保用户在每次点击刷新验证码时都能获取到新的验证码,从而提高用户体验。在...
通过以上策略,可以有效解决验证码在IE7和IE8中的兼容性问题,确保用户在这些老版本浏览器中也能正常使用验证码功能。同时,考虑到IE浏览器的市场份额逐渐减少,建议在提升兼容性的基础上,鼓励用户升级到更现代的...
项目描述中提到,这个验证码系统已在IE、FF、Chrome、Opera和Safari等多个浏览器上测试通过,这意味着代码具有良好的浏览器兼容性。为了实现这一点,可能需要使用像jQuery这样的库来处理跨浏览器差异,或者使用特性...
在IT行业中,验证码是一种常见的安全机制,用于防止自动机器人或者恶意软件进行欺诈性操作,比如注册、登录等。本示例“注册页面用的验证码demo”着重于前端验证,为用户注册过程提供了一种安全的交互方式。下面将...
例如,谷歌浏览器(Chrome)可能无法显示某些在IE浏览器中可以正常显示的验证码。这时,可以尝试更换浏览器,比如使用IE、Firefox、Safari或其他浏览器,看验证码是否能够显示。 3. **网页Flash插件不显示或Cookies...
5. 测试验证码在不同浏览器(特别是IE)上的兼容性,确保在所有目标环境中正常工作。 总之,jQuery实现的滑动图片验证码结合了前端交互设计与后端验证逻辑,为用户提供了一种直观且安全的验证方式。在实际开发中,...
在IE浏览器中,进入“工具”菜单,选择“Internet选项”,在“隐私”选项卡中,将隐私设置调至“中”级别,然后重启浏览器,看是否解决问题。 第四,排查IE浏览器组件的问题。有时,由于恶意插件或组件损坏,可能...
在不同浏览器中,创建XMLHttpRequest对象的方法略有差异,对于非IE浏览器,直接new XMLHttpRequest()即可,而对于IE,需要使用ActiveXObject。一旦创建了对象,就可以调用其open()方法初始化请求,指定请求类型(GET...
本文将深入探讨IE浏览器中验证码不刷新的问题及其解决方案。 在描述中提到的情况,开发者遇到的问题是IE浏览器在加载验证码图片时,由于图片URL没有包含随机参数,导致按回车键后验证码不会更新。这种问题通常与...
(3)打开IE浏览器,在地址栏中输入http://localhost:8080/,进入“Tomcat软件管理”页面。 注意:8080为安装Tomcat时设置的端口号。 (4)单击Tomcat Manager超链接,弹出“连接到 localhost”对话框。 (5)在...
在这个文件中,不应直接获取`$_SESSION["VCODE"]`,因为这可能会导致获取到新生成的验证码,而非用户看到的验证码。用户输入的验证码将被发送到`loginCheck.php`进行验证。页面可能包含HTML结构、CSS样式、...
在开发中,为了避免表单的重复提交,使用了验证码,但是在做单机验证码切换功能时,发现谷歌浏览器单机每次都可刷新验证码的图片,但是火狐浏览器和IE浏览器,就仅仅的能刷新一次。 原因: 因为浏览器为了提高请求的...
在ThinkPHP框架中,验证码的实现是非常方便的,通过 Verify 类来完成。Verify 类提供了验证码的生成和验证功能,适用于防止恶意注册、登录和数据提交等场景。下面是根据提供的文件内容,总结出的thinkPHP验证码使用...
通过jquery.cookie.js插件可以快速实现“点击获取验证码后60秒内禁止重新获取(防刷新)”的功能 效果图: 先到官网(http://plugins.jquery.com/cookie/)下载cookie插件,放到相应文件夹,代码如下: 代码如下: ...
《jQuery评论插件在IE8中的应用与扩展》 jQuery评论插件是Web开发者在构建交互性强、用户体验优良的网站时常常使用的工具。这个“jQuery评论插件IE8.rar”压缩包提供了一个专为IE8浏览器优化的评论系统模板,旨在...
在Android中,我们可以通过继承AppCompatEditText来创建一个自定义的验证码输入框。这个自定义View的主要任务是将输入框分隔成多个小格子,每个格子对应验证码的一个字符。 1. **样式设计**: - 验证码个数...
ASP.NET 网站开发中,防止恶意刷新是保障用户体验和服务器资源安全的重要措施。本文将探讨两种常用的方法,即利用 Cookies 和 Session 来实现这一功能。这两种技术都是 ASP.NET Web 应用程序中用于存储用户状态的...