jquery $.get方法

kengqiangxianv 2010-01-22 10:15:56
项目中遇到的问题:项目时mvc开发模式,做个登录的验证码验证,得到验证码的session值有时正确有时不正确,实在不知道什么原因了
<input name="username" type="text" id ="username" style="display:inline; width:110px"/>
<img id="valiCode" style="cursor: pointer;" alt="<%=Session["validata"] %>" src="<%=Url.Action("getValidata","Login" ) %>" onclick="this.src=this.src+'?'" />


onclick事件是刷新验证码用的,="<%=Url.Action("getValidata","Login" ) %>" 中的方法就是得到一个4为数字,将这个四位数字放入session中,然后形成图片形式,
 
public ActionResult getValidata()
{
ValidateCode vCode = new ValidateCode();
string code = vCode.CreateValidateCode(4);
byte[] bytes = vCode.CreateValidateGraphic(code);
SessionAccessor<string>.SaveToSession("validata", code );
SessionAccessor<string>.SaveToSession("validata1", code);
return File(bytes, @"image/jpeg");}


public string getsessionvalue()
{

string validata = SessionAccessor<string>.GetFromSession("validata1");
return validata;
}



这是利用$.get 方法在脚本里面得到session的值,也就是验证码的值,
$(document).ready(function() {
$("#username").click(function() {
var URL = "/jingcaiweb/Login/getsessionvalue?id=" + Math.random();
$.get(URL, function(data) {
alert(URL);
alert(data);
})
})


第一次得到的验证码的session值和验证码一致,当我刷新验证码的时候,实际上session值已经变化了,可是我得到确是有时候有时候不正确,这个诡异的事浪费了我一天的时间了,请大家帮忙, 这里js中是当username click 的时候获取session值,alert出来,就是得到的值有时正确有时是不发生变化的
...全文
131 3 打赏 收藏 举报
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
kengqiangxianv 2010-01-26
  • 打赏
  • 举报
回复
我最后解决的办法,是脚本中调用服务器端的方法。在服务器端验证验证码输入是否正确。返回字符串到客户端,用脚本提示返回来的信息
kengqiangxianv 2010-01-22
  • 打赏
  • 举报
回复
可以确定的是生成验证码的同时,session的值也变化了,因为
  string    code = vCode.CreateValidateCode(4);
byte[] bytes = vCode.CreateValidateGraphic(code);
SessionAccessor<string>.SaveToSession("validata", code );
SessionAccessor<string>.SaveToSession("validata1", code);

是不是我本地的原因?快救命啊
qq373591361 2010-01-22
  • 打赏
  • 举报
回复
技术不高,不敢肯定只能猜测。
session里的验证码和显示的验证码不一致可能是,页面回传刷新的问题,
显示的没变,但是后台的已经再生成一个验证码了。
相关推荐
发帖
JavaScript

8.7w+

社区成员

Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
帖子事件
创建了帖子
2010-01-22 10:15
社区公告
暂无公告