我最近在用户登录页面上实现了jquery验证。代码在FF和Chrome中运行良好,但在IE 8和IE中爆炸。以上。
我无法弄清楚问题是什么,所以我终于放弃并决定寻求帮助
这是返回的json -
{"REDIRECT_URL":"","ERR_MSG":"Username or password is invalid","ERR_NUM":12}
请参阅下面的提交方法,IE在指定url参数的行上的$ .ajax调用内失败。错误为SCRIPT438: Object doesn't support this property or method
submitHandler:
function(form) {
if($("#user_login").valid()){
var isValidLogin = false;
var user = $("#username").val();
var pwd = $("#user_password").val();
$.ajax({
type: 'GET',
contentType: 'application/json; charset=utf-8',
url: 'data_handler.php',
data: "user=" + user + "&pwd=" + pwd,
dataType: 'json',
success: function (data) {
redirect_url = data.REDIRECT_URL;
err_msg = data.ERR_MSG;
if(err_msg == ""){
location.href = redirect_url;
isValidLogin = true;
}
else{
if(redirect_url != ""){
location.href = redirect_url;
}
else{
$('#err_alert').show();
$('#err_alert').html(err_msg);
}
isValidLogin = false;
}
},
error:function(){ }
});
}
else{
return false;
}
return false;
}
答案 0 :(得分:0)
错误的行号有用。但无论如何你应该声明你的变种:
success: function (data) {
var redirect_url = data.REDIRECT_URL;
var err_msg = data.ERR_MSG;
可能发生的事情是返回的json不包含您提到的属性REDIRECT_URL和/或ERR_MSG。
您可以直接导航到data_handler.php来测试json是否正确?user = youruser& pwd = yourpwd
Chrome和FF也可能在控制台中显示错误。
更新如果错误在此行:
data: "user=" + user + "&pwd=" + pwd,
也许您应该在上面设置一个变量来测试它。即:
var info = "user=" + user + "&pwd=" + pwd;
结合:
data: info,