+ -
当前位置:首页 → 问答吧 → [求助]关于ajax更新页面的怪异问题,请各位帮帮忙吧

[求助]关于ajax更新页面的怪异问题,请各位帮帮忙吧

时间:2009-07-06

来源:互联网

麻烦帮我转到相关板块好吗,我发错地方了

一个简单的用户登入验证,提交时用ajax来post信息到asp中,然后返回各种信息
可现在问题是,我不管如何哪怕数据正确,他在ajax中总是出发error事件,让我十分头疼,多番查找各类信息无果,还请各位帮帮我的忙吧,帮我看看错在哪里
asp用手动提交或者直接url测试都是正常的,可一用ajax就不对

asp代码如下:
复制代码
  1.  Public Function Check()
  2.   Dim sCode
  3.   sCode = Trim(Request("postadmcode"))
  4.   If sCode = CStr(Session("GetCode")) Then
  5.    Dim sPassWD
  6.    Dim sRs
  7.    ParArray(0) = Trim(Request("postadmusername"))
  8.    sPassWD = Trim(Request("postadmpasswd"))
  9.    Set sRs = Execute(0)
  10.    If Not (sRs.Bof And sRs.Eof) Then
  11.     Dim sVID
  12.     sRs.MoveFirst
  13.     sVID = Trim(sRs("VerifyID"))
  14.     sPassWD = md5(sPassWD)
  15.     sPassWD = md5(Mid(sVID,1,2) & sPassWD & Mid(sVID,3,3))
  16.     If (sPassWD = Trim(sRs("PassWD"))) Then
  17.      Session.Abandon()
  18.      Session.Timeout = 30
  19.      Session("Login") = "Sure"
  20.      Session("AdmUName") = sRs("UserName")
  21.      Session("AdmFlag") = sRs("Flag")
  22.      Session("LastTime") = sRs("LastTime")
  23.      Session("LastIP_Old") = sRs("LastIP")
  24.      Session("NowIP") = GetIP()
  25.      ParArray(0) = Session("NowIP")
  26.      ParArray(1) = sRs("ID")
  27.      ParArray(2) = Session("AdmUName")
  28.      sRs.Close
  29.      Set sRs = Nothing
  30.      Set sRs = Execute(1)
  31.      Response.Write("登入成功")
  32.      'Response.Redirect "admin.asp"
  33.     Else
  34.      Response.Write("密码错误,请勿猜测管理员密码!")
  35.     End If
  36.    Else
  37.     Response.Write("用户名错误,请勿猜测管理员帐号!")
  38.    End If
  39.    Set sRs = Nothing
  40.   Else
  41.    Response.Write("验证码错误!")
  42.   End If
  43.  End Function 

其中GetIP是获取IP地址函数,我挂了个测试页面www.netms.com.cn/mg/check.asp?class=check&postadmusername=admin&postadmpasswd=admin&postadmcode=1234
从这个页面很清楚应该返回时验证马错误

JS代码如下
复制代码
  1.  $.fn.Check = function(){
  2.   var sMask;
  3.   var sPostStr = "class=check&postadmusername=" + $("#postadmname").val() + "&postadmpasswd=" + $("#postadmpasswd").val() + "&postadmcode=" + $("#postadmcode").val();
  4.   if($(this).AbcCheck($("#postadmname"),$("#admnamediv"),25,4)
  5.    &&$(this).AbcCheck($("#postadmpasswd"),$("#admpasswddiv"),25,4)
  6.    &&$(this).AbcCheck($("#postadmcode"),$("#admcodediv"),4,4)){
  7.    alert("开始验证\n"+sPostStr);
  8.    $.ajax({type: "POST",
  9.        url: "check.asp",
  10.        data: sPostStr,
  11.        beforeSend: function(){
  12.         sMask = $("body").Mask("验证数据中,请等待。。。");
  13.      },
  14.        complete: function(){
  15.         sMask.remove();
  16.      },
  17.        success: function(msg){
  18.         alert("验证返回");
  19.         alert(msg);
  20.         $(this).Rest();
  21.      },
  22.      error: function(XMLHttpRequest, textStatus, errorThrown){
  23.       alert("请求错误 " + XMLHttpRequest+" "+textStatus+" "+errorThrown);
  24.      }
  25.    });
  26.   }else{
  27.    alert("登入信息错误!请重新填写。");
  28.    $(this).Rest();
  29.   }
  30.  } 

其中Mask函数只是一格遮罩效果,可以忽略

html页面很简单的注册提交,我也挂网上了http://www.netms.com.cn/mg/index.asp
请各位帮帮忙吧
[ 此帖被buddydeus在2009-07-06 22:43重新编辑 ]

作者: buddydeus   发布时间: 2009-07-06

倒弄了两天还是没解决,各位都过来看看吧
我尝试用load post get可结果都一样
尝试将请求页面换成单纯的静态网页,请求通过可以进入success,可一旦转回动态验证就出错
我说的静态网页就是页面内容只有<%Response.Write("=1=")%>这样的代码

作者: buddydeus   发布时间: 2009-07-08

相关阅读 更多