是否可以强制错误状态从PHP脚本返回到ajax请求。JavaScript/jQuery和PHP Ajax强制执行错误
我正在处理ajax请求中的成功和错误状态,我想要一种强制错误的方法。该错误似乎只是由于xhttp错误而触发的,我想在服务器未满足条件时触发该错误。它似乎混淆不得不返回成功,要真正把国旗在回应一个错误
是否可以强制错误状态从PHP脚本返回到ajax请求。JavaScript/jQuery和PHP Ajax强制执行错误
我正在处理ajax请求中的成功和错误状态,我想要一种强制错误的方法。该错误似乎只是由于xhttp错误而触发的,我想在服务器未满足条件时触发该错误。它似乎混淆不得不返回成功,要真正把国旗在回应一个错误
您可以使用header要做到这一点,例如:
header('HTTP/1.1 503 Service Unavailable');
你可以从两个角度来处理这个:
PHP
<?php
if(User::Login($_POST['username'], $_POST['password'])) { // Your logic here
print 'Login successful!';
} else {
header("HTTP/1.0 403 Forbidden");
print 'Bad user name/password';
}
jQuery的
$.ajax({
'url': '/some/url',
'type': 'POST',
'data': {
'username': '[email protected]',
'password': 'rhd34h3h'
},
'success': function(data) {
alert(data);
},
'error': function(jqXHR, textStatus, errorThrown) {
alert('ERROR: ' + textStatus);
}
});
强制的错误:
强制的错误,以通过输出HTTP报头,如404或503被抛出根据结果数据的某些条件抛出:
PHP
<?php
$return = array();
if(User::Login($_POST['username'], $_POST['password'])) { // Your logic here
$return['success'] = True;
$return['message'] = 'Login successful!';
} else {
$return['success'] = False;
$return['message'] = 'Bad user name/password';
}
print json_encode($return);
jQuery的
$.ajax({
'url': '/some/url',
'type': 'POST',
'dataType': 'json',
'data': {
'username': '[email protected]',
'password': 'rhd34h3h'
},
'success': function(data) {
if(data['success']) { // Successful login
alert(data['message']);
} else { // Login failed, call error()
this.error(this.xhr, data['message']);
}
},
'error': function(jqXHR, textStatus, errorThrown) {
alert('ERROR: ' + textStatus);
}
});
此外,代码可以是任何在400-500范围内的数的标准的HTTP '错误' 状态代码:HTTP:// EN .wikipedia.org /维基/ List_of_HTTP_status_codes#4xx_Client_Error – benastan 2013-05-13 21:44:10