验证码图片ie下点换张图片不变ff和谷歌都变解决不了(求助)
index.jsp页面里套了一个iframe iframe src是一个jsp页面,这个jsp页面里调用生成jpg图的代码
可是ie下就是不变还是哪一张图
我用     <meta http-equiv="Expires" CONTENT="0">
<META HTTP-EQUIV="pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">
<META HTTP-EQUIV="expires" CONTENT="Wed, 26 Feb 1997 08:21:57 GMT">
<%
response.setHeader("Pragma", "no-cache"); 
response.setHeader("Cache-Control", "no-cache"); 
response.setDateHeader("Expires", 0); 
out.flush();
%>
之类都不行,求助啊

解决方案 »

  1.   

    客户端:
    <img onclick="this.src='img.jsp?'+Date.parse(new Date())" alt="单击更换" >
      

  2.   

    呵呵,因为浏览器会将图片进行缓存,由于是同样的 URL,浏览器进行了优化,并不会再去请求服务器。可以像孟老大所说的,在 onclick 时 URL 后面加个日期,或者加个 Math.random() 也行。你或许没留意到,CSDN 的帖子地址也是这样处理的。
      

  3.   

    恩,我在初学ajax时也遇到过这类问题,请求后跟上随机数或日期,即可成功再次请求。
      

  4.   

    你们太天真了.你们说的我都试过了不好使
      <body>
        <span>验证码:</span>
    <input id="code" style="margin-left: 5px;" size="5" value=""/>   
    <iframe align="top" frameborder="0"
          height="45" width="89" marginheight="0"
          marginwidth="0" scrolling="auto" src="imgcode.jsp?code=<%=Math.random() %>" id="ff1">
    </iframe> 

    <a href="javascript:void(0);" onclick="document.getElementById('ff1').src='imgcode.jsp?code=<%=Math.random() %>'">换一张</a>
    <input type="button" value="提交" onclick="goTo();"/>
      </body>
     <%
    response.setHeader("Pragma", "no-cache"); 
    response.setHeader("Cache-Control", "no-cache"); 
    response.setDateHeader("Expires", 0); 
    %>
      <%
       CreateValidImage c = new CreateValidImage();
       String str = c.getContent();
    c.creatImage("imgcode.jpg",str,request); //生成验证码图片
       %>
       <script type="text/javascript">     
     function codeShow(){ 
      document.getElementById("ii").style.display = 'none';  
      //alert(111);
      //document.write();
      document.getElementsByTagName("body")[0].innerHTML = "<img id='codeimg' src='imgcode.jpg' width='80' height='40' title='<%=str.toLowerCase()%>'>"
      //alert();
      //document.getElementById("codeimg").setAttribute("src","imgcode.jpg");
      //alert(222);
     }
       setTimeout("codeShow();",5000); //延迟5面显示验证码
       </script>
      <body>  
      
        <img id="ii" src="25.gif" width="40" height="40"/>
         
     
      </body>
      

  5.   

    上面是首页吧.
    下面那个页面就是验证码的页面  通过程序生成一张验证码.然后img显示 上面的页面iframe调用
      

  6.   

    document.getElementById('ff1').src='imgcode.jsp?code=<%=Math.random() %><%=Math.random() %>生成完了就是固定了的了,你点多少次都没有用,不是告诉你使用客户端的js做了吗?
      

  7.   

    另外,验证码没有必要使用iframe,
      

  8.   

    c.creatImage("imgcode.jpg",str,request);
    -----------------------------------------------你不会把验证码存成图片,然后再用 HTML 的 img 去调用吧?这样做完全没有必要的,你可以把这个图片流直接向 response 中输出,并且将 HTTP Content-Type 头改掉,在 img 中访问这个图片流的 JSP 或者 Servlet 的 URL 就可以获得图片了。