我正在一個小網站,我正在做一個Ajax調用刪除表中的一行。我想要做的是讓PHP返回一個狀態代碼來觸發我的ajax請求中的.success
或.fail
函數。 展望不同的問題,我想出了這個解決方案,但它不工作:ajax返回錯誤狀態代碼
AJAX調用:
function delete_mov(id){
$.ajax("delete_mov.php?id="+id
)
.success(function(){
bootbox.alert("Movimento "+id+" correttamente cancellato");
})
.fail(function(){
bootbox.alert("Problemi a cancellare il movimento "+id);
});
}
和php:
try{
$s = $dbh -> prepare("DELETE FROM movimenti_banca WHERE di=$id");
$s -> execute();
}
catch (PDOException $e){
http_response_code(500);
exit;
//$message = $error_message.' '.$e->getMessage();
}
http_response_code(200);
我不能得到的是觸發.fail
當查詢未執行或返回錯誤時。我確信這個查詢失敗,因爲我把一個錯誤(di而不是id)放在這裏。 如果我刪除要調用的php文件,則會觸發.fail
。
編輯:修改我的代碼,以http_response_code
進行測試,但在查詢失敗時仍未觸發500狀態。
EDIT2:調試我意識到,即使查詢有錯誤(di=$id
應該id=$id
)捕捉部分不進入,因此500的狀態從未設置
這正是我想要在我的PHP。返回500狀態。所以我必須使用http_response_code,很高興知道!謝謝:) –
我試圖將您的解決方案應用於我的代碼(請參閱編輯的代碼),但它總是返回200.我錯過了什麼? –