首页 新闻 搜索 专区 学院

.net ashx 生成验证码ProcessRequest执行两次的问题

0
悬赏园豆:30 [已关闭问题] 关闭于 2015-12-25 10:45

我直接打开这个链接http://localhost:23011/Login/GetCheckCode.ashx?t=ce7052c1a25f4e1a99525d8c80957180

通过ashx 生成验证码,

   

  image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
                context.Response.ClearContent();
                context.Response.ContentType = "image/jpeg";
                context.Response.BinaryWrite(ms.ToArray());

 

这样输出。

但是执行两次,导致看到的是第一次执行的验证码,但是session中保存的是第二次的结果,校验通过不了,不知道为什么ProcessRequest执行两次,

摆脱菜鸟的主页 摆脱菜鸟 | 初学一级 | 园豆:16
提问于:2015-10-13 14:31
< >
分享
所有回答(1)
0

你有没有一个表单提交?还有就是你的验证码生成为什么执行了2次,求贴一些代码看下,不是需要你怎么生成验证码

稳稳的河 | 园豆:4216 (老鸟四级) | 2015-10-13 14:46

没有表单,我这个接口就是生成验证码图片。

其实正常使用验证码是前台中一个image标签,src指向接口地址,我为了测试,直接在浏览器中输入那个接口地址,调试的时候,ashx中总是执行两次,就出现了我描述的问题。如果点击image没问题,不会执行两次,这是怎么回事,知道吗

支持(0) 反对(0) 摆脱菜鸟 | 园豆:16 (初学一级) | 2015-10-13 15:07

@摆脱菜鸟: 这是你初始化的时候请求一次,ajax再请求一次?我这样怎么猜的到

支持(0) 反对(0) 稳稳的河 | 园豆:4216 (老鸟四级) | 2015-10-13 15:12

@稳稳的河: 没有ajax,<image src="http://localhost:23011/Login/GetCheckCode.ashx?t=ce7052c1a25f4e1a99525d8c80957180">

这样没问题,页面加载的时候会执行ashx,调用一次

但是http://localhost:23011/Login/GetCheckCode.ashx?t=ce7052c1a25f4e1a99525d8c80957180我不放到image标签中,在浏览器中直接请求,执行ashx就会执行两次

应该是请求的内容是文件的情况下,不能通过地址栏直接请求,会执行两次,而如果结果是

context.Response.ContentType = "text/plain";在浏览器中直接请求不会执行两次

支持(0) 反对(0) 摆脱菜鸟 | 园豆:16 (初学一级) | 2015-10-13 16:31
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册