js刷新验证码:
<a href="javascript:changeImg();" title="看不清?点击换一张">
<img id="imgcode" src="Handler/CheckCodeHandler.ashx?type=login&stamp=1" width="80" height="30" onclick="changeUrl()"/>
</a>
//刷新验证码
function changeImg() {
document.getElementById("imgcode").src = "Handler/CheckCodeHandler.ashx?type=login&stamp=" + Math.random();
}
CheckCodeHandler.ashx
using System;
using System.Web;
namespace YK.WebSite.Handler
{
/// <summary>
/// 用于验证码的处理程序
/// 调用该处理程序时,要加参数type,表明是哪一个功能需要的验证码
/// 获取验证码的SessionKey是YK.Website.CheckCode.[type]
/// </summary>
public class CheckCodeHandler : IHttpHandler
{
public HttpResponse Response
{
get
{
return HttpContext.Current.Response;
}
}
public HttpRequest Request
{
get
{
return HttpContext.Current.Request;
}
}
public void Proce***equest(HttpContext context)
{
string type = Request.QueryString["type"];
if (String.IsNullOrWhiteSpace(type)) return;
Response.Buffer = true;
Response.ExpiresAbsolute = System.DateTime.Now.AddMilliseconds(0);
Response.Expires = 0;
Response.CacheControl = "no-cache";
Response.AppendHeader("Pragma", "No-Cache");
string chkCode = String.Empty;
byte[] bytes = YK.Common.Util.CheckCodeKit.GetChkCodeBytes(ref chkCode);
YK.Core.Context.Context.SetDataBySession("YK.Website.CheckCode." + type, chkCode);
Response.ClearContent();
Response.ContentType = "p_w_picpath/Png";
Response.BinaryWrite(bytes);
}
public bool IsReusable
{
get
{
return false;
}
}
}
}
把参数的值写成随机数
这样每次点击刷新的时候
缓存就不一样了
就可以起到刷新的效果了
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。