我正在使用jQuery.get()
方法
$.get('login.php', function(d, textStatus, jqXHR){
//alert(jqXHR.status)
var status = jqXHR.status;
if((status==200)||(status==202)){
window.location.href = 'dashboard.html';
}else if(status==401){
alert('Error in login details')
}else{
alert('Unknown Error')
}
});
工作正常。当200& 202,它将重新连接到仪表板页面。但除了200& 202,它在控制台中传递错误,但不显示警告。
答案 0 :(得分:3)
您需要为fail
状态添加一些事件处理程序,这将处理4xx和5xx错误。 success
状态仅处理指示成功请求的HTTP代码。来自http://api.jquery.com/jQuery.get
var jqxhr = $.get( "example.php", function(data, status) {
alert( "success - " + status );
})
.done(function(data, status) {
alert( "second success - " + status );
})
.fail(function(data, status) {
alert( "error - " + status );
})
.always(function(data, status) {
alert( "finished - " + status );
});
答案 1 :(得分:1)
这是因为您定义的回调函数仅在成功请求完成时调用。如果响应不是200,则认为该请求有错误。要执行您需要的操作,您可以使用$.ajax()
方法:
$.ajax({
url: 'login.php',
success: function() {
window.location.assign('dashboard.html');
},
error: function(xhr) {
if (xhr.status == 401) {
alert('Error in login details')
} else {
alert('Unknown Error')
}
}
});