我在公司的的项目,今天偶然发现登录时需要输入的那个验证码,原来点击的时候可以更换的(以便更换有些分辩不出的验证码),现在不能更换了。
代码看了又看,改了又改,依然没有效果。于是去其他电脑上试试(因为项目已经放上服务器上,在局域网运行了),却发现其他人的电脑都可以点击验证码图片,然后就可以更换验证码了。
测试了一些其他银行的页面,却都可以更换的,不知道我的电脑哪里的设置出了问题。说明一下,我的项目是用JAVA开发的,生成验证码的文件是一个Servlet文件来的。
我的电脑是用XP SP3的。不知道是不是Internet选项的“安全性”那里出了问题。

解决方案 »

  1.   

    你在后面加上date.getTime()
    试试看
      

  2.   

    把路径写成  yourservlet?t=Math.random()
      

  3.   


    图片.src = "验证码servlet?" + Math.random();
      

  4.   

    如果 要是IE7 或8 或火狐浏览器的确出现此问题 
    servlet  生成的,我用的是Struts 1.2  其实
    是不是系统垃圾太多了 清理一下
      

  5.   

    不好意思,因为太忙了,都忘记了自己发的这个问题了。
    今天上CS才看到这个贴子。把“?t=Math.random() ”拷贝到代码中,现在可以点击更换了,但只能更换一次。我的代码是这样的:<img src="VCodeServlet?t=Math.random()" alt="点击可刷新验证码"
     onclick="this.src='VCodeServlet';aa()" />后来我发觉:把Math.random()都换成随便一个字符串都可以做到更换一次,我怀疑是不是哪里写错了。
    是不是应该在Servlet那里进行一些处理?
    另外:为什么我的电脑会出现这个问题,而其他电脑却没有呢?如果是缓存的原因,我应该怎么修改我的电脑的设置呢?
    还有,什么是“时间戳”?
      

  6.   

    不好意思,因为太忙了,都忘记了自己发的这个问题了。
    今天上CS才看到这个贴子。把“?t=Math.random() ”拷贝到代码中,现在可以点击更换了,但只能更换一次。我的代码是这样的:<img src="VCodeServlet?t=Math.random()" alt="点击可刷新验证码"
     onclick="this.src='VCodeServlet';aa()" />后来我发觉:把Math.random()都换成随便一个字符串都可以做到更换一次,我怀疑是不是哪里写错了。
    是不是应该在Servlet那里进行一些处理?
    另外:为什么我的电脑会出现这个问题,而其他电脑却没有呢?如果是缓存的原因,我应该怎么修改我的电脑的设置呢?
    还有,什么是“时间戳”?
      

  7.   

    不小心刷新了一下,又多了一个回复上了。麻烦管理员删掉多余的那张贴子吧!搞掂了刷新的问题了,代码是:<img src="VCodeServlet" align="absmiddle" alt="点击可刷新验证码"
     onclick="aa()" id="img" /><script language="javascript" type="text/javascript">
    function aa(){
    document.getElementById("img").src="VCodeServlet?t="+(new Date()).getTime();
    }
    </script>