在php對4XX或5XX的響應中設置請求statuscode。這會讓你最終回調error
/fail
。
我並不一定必須是列表中的值。例如,你可以創建自己:
StatusCode: 550
StatusText: "My Custom Error"
其中,如果我沒有記錯,應該是這樣的PHP:
header('HTTP/1.0 550 My Custom Error');
最後,發送錯誤信息給客戶,通知他們什麼地方出了錯。您可以放置在信息的標題,或使用序列json_encode()
客戶端異常:
$.ajax({
url: 'page.php',
data: { 'some_bad_condition': true }
}).done(function(data){
console.log('success!', data);
}).fail(function(jqXhr){
var errorObject = $.parseJSON(jqXhr.responseText);
console.log('something went wrong:', errorObject);
//jqXhr.status === 550
//jqXhr.statusText === 'My Custom Error'
});
不要忘記你的PHP文件中指定正確的MIME類型。這樣jQuery就會知道這是一個JSON響應,沒有你明確地指定它。
header('Cache-Control: no-cache, must-revalidate');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Content-type: application/json');
你想要什麼樣的錯誤 – Nandakumar