jQuery ajax 返回页面的Html,并非后台Response.Write()出来的值

sweet_dogltx 2012-12-19 05:03:40
页面脚本调用如下:

function validateAcc() {
var Email = document.getElementById("myEmail").value.trim();
if (isEmail(Email)) {
var Psw = document.getElementById("mypassword").value;
var arg = document.getElementsByName("radUser")[1].checked ? "login" : "createAccount";

$.ajax({
type: "GET",
url: "ajaxforlogin.aspx",
data: "todo=" + arg + "&email=" + Email + "&psw=" + Psw,
success: function (html) {
PopupLogin_Complete(html);
}
});
}
else {
document.getElementById("ErrorMsg").innerHTML = "<%= Resources.lang.mvalidLogin%>";
}
}
function PopupLogin_Complete(result) {
if (result != "") {
var sValues = result.split('|');
var sMsg = sValues[0];
var sType = sValues[2];
var sUserName = sValues[3];
if (sType == "loginSuccess") {
$("#wel_Info").html("<%=Resources.lang.mHeader_Welcome%>" + sUserName);
$("#yourFirstName").html("<%=Resources.lang.mHey %> " + sUserName);

closePop();
//getObj("yourimage").innerHTML=sValues[1];
}
else if (sType == "loginFail") {
document.getElementById("ErrorMsg").innerHTML = sMsg;
}
else if (sType == "createAccountFail") {
document.getElementsByName("radUser")[1].checked = true;
document.getElementById("mypassword").focus();
document.getElementById("mypassword").select();
document.getElementById("ErrorMsg").innerHTML = sMsg;
}
else if (sType == "createAccountSuccess") {
location.href = "/register.aspx?user=" + document.getElementById("myEmail").value.trim();
}
}
}

PopupLogin_Complete方法里面 result 不是 ajaxforlogin.aspx 页面后台输出的值,而是当前调用页面的Html,而且 url无论写什么页面就算不存在,都会success调用PopupLogin_Complete方法,result也是Html

求大侠支招

ajaxforlogin.aspx后台代码是这样的

protected void Page_Load(object sender, EventArgs e)
{
string sEmail = CMS.DBUtility.DBHelper.RemoveInject(Request.QueryString["email"] + "");
string sPsw = CMS.DBUtility.DBHelper.RemoveInject(Request.QueryString["psw"] + "");

Response.Write(Login(sEmail, sPsw));
Response.End();
}
...全文
447 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
sweet_dogltx 2012-12-20
  • 打赏
  • 举报
回复
楼上正解 那个url前加上 / 就可以了 返回的Html是出错的时候默认转向的页面的Html,页面url请求不到所以转向了错误处理页面
Go 旅城通票 2012-12-20
  • 打赏
  • 举报
回复
浏览器直接访问ajaxforlogin.aspx这个页面看输出什么 感觉你服务器做了404/500的错误处理,转向一个友好页面,这样客户端得到的是200状态,而非404/500,导致执行了success回调
wswssx 2012-12-19
  • 打赏
  • 举报
回复
先确定下有没有进入后台吧,正常情况是不会有问题的。
周睿 2012-12-19
  • 打赏
  • 举报
回复
首先要确定断点进入后台么?而且用ASPX做AJAX的后台处理页面,需要注意把前台一些没用的代码去掉,
sweet_dogltx 2012-12-19
  • 打赏
  • 举报
回复
谁能帮忙分析下

52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧