我正在使用Ajax将用户登录到系统中。
即使服务器返回的是布尔值,Ajax成功也将始终运行else语句。
如果登录凭据有效,则else语句将运行,并且将显示登录失败,但是如果我刷新页面,则用户将登录。
基本上if(response)
永远不会运行,即使它是true
。
$(function(){
$('#loginButtonIdHead').click(function() {
$.ajax({
url: 'localhost/landing/login',
type: 'POST',
data: {
email: $('#defaultForm-email1').val(),
password: $('#defaultForm-pass1').val()
},
success:function(response) {
if(response){
$('#messageId').text("Login Successful");
} else {
$('#messageId').text("Login Failed");
}
}
});
});
});
答案 0 :(得分:0)
$.ajax()
方法将匿名函数用于成功和错误回调。此版本更易于编写,并且可能更易于维护:
$(function(){
$('#loginButtonIdHead').click(function(){
$.ajax({
url: 'localhost/landing/login',
type: 'POST',
data:
{
email: $('#defaultForm-email1').val(),
password: $('#defaultForm-pass1').val()
}, success:function(response) {
$('#messageId').text("Login Successful");
},error: function () {
$('#messageId').text("Login Failed");
}
});
});
});
因此,如果登录名不正确,您应该从login
api调用中获得 403禁止访问状态,这将调用错误回调。
此外,在 200成功状态下输入错误也不是一个好方法。因此,后端开发人员必须将其更新为适当的状态。
谢谢。