日期:2014-05-17  浏览次数:20473 次

asp.net 验证码刷新没反应
<asp:Image ID="imgYZ" runat="server" ImageUrl="~/ImageValidate.aspx" /> 
<a href="javascript:getimgcode()">刷新验证码</a>
<script language="javascript" type="text/javascript">
        function getimgcode() {
            var getimagecode = document.getElementById("imgYZ");
            getimagecode.src = "ImageValidate.aspx";
        } 
</script>

注:ImageValidate.aspx为产生验证码的网页

在开发状态下, 运行正常,可正常刷新验证码,但发布到服务器后, 点击刷新验证码, 没反应。 请教各位大侠, 为什么?

------解决方案--------------------
带个随机数就行了


------解决方案--------------------
<asp:Image ID="imgYZ" runat="server" ImageUrl="~/ImageValidate.aspx" /> 
<a href="javascript:getimgcode()">刷新验证码</a>
<script language="javascript" type="text/javascript">
        function getimgcode() {
            var getimagecode = document.getElementById("<%=imgYZ.ClientID %>");
            getimagecode.src = "ImageValidate.aspx?"+Math.floor(Math.random()*10000);
        } 
</script>

试试有没有效果
------解决方案--------------------
引用:
JavaScript code
?



12345

function GetImageCode()  {     $("#imageCode").attr("src", "resources/CheckCode.aspx?"+Math.random()); }

+1 在路径后面添加一个随机数
你的代码
 getimagecode.src = "ImageValidate.aspx";
改成
 getimagecode.src = "ImageValidate.aspx?date="+new Date();

------解决方案--------------------
引用:
谢谢各位, 可以了, 但小弟实在不明白原因, 望解释!!!!!
在ImageValidate.aspx页面中, 我已经内置了随机数, 况且这个页面, 我根本就没有设置接收参数。为什么加了这些看似多余的东西后, 反倒可以了呢?


因为同样的请求,在参数没有变化的时候会被浏览器缓存起来。
------解决方案--------------------
带个随机数在网页地址后,会默认为访问不同页面了,以验证码就能生成新的

就好比:每次都是访问A.aspx,被缓存了,以每次验证码总是那一个
但加了随机数后就变成:第一次访问A.aspx?1,第二次访问A.aspx?2,得出的结果当然就不一样