即使出現錯誤,我的 ajax 代碼也總是收到成功回應。我正在使用 Laravel 8.2。
這是 JavaScript
$(".deleteRecord").click(function(){
var id = $(this).data("id");
var token = $("meta[name='csrf-token']").attr("content");
if(confirm('Do you want to delete?')){
$.ajax(
{
url: "operDel/" id,
type: 'post',
cache: false,
data: {
"id": id,
"method": 'post',
"_token": token,
},
dataType: "json",
success: function() {
alert('Record is deleted'); // I getting only this alert
},
error: function() {
alert('You can not delete this record');
}
});
}
});
這里是路線
Route::post('operDel/{id}', '\App\Http\Controllers\OperationController@destroy')->name('operDel')->middleware('auth');
這是控制器
public function destroy($id)
{
$user = User::find($id);
if($user->type !== 0) {
$user->delete();
return response()->json([
'success'=>"Record deleted."
]);
}
else{
return response()->json([
'error' => "You can not delete this"
]);
}
}
控制器運行沒有錯誤,當 $user-> type 時它從資料庫中洗掉了記錄!== 0。但我只收到成功函式中的警報。如何顯示回應訊息以提醒?
uj5u.com熱心網友回復:
您需要發送錯誤回應代碼,以便 AJAX 將回應視為失敗,例如:
public function destroy($id)
{
$user = User::find($id);
if($user->type !== 0) {
$user->delete();
return response()->json([
'success'=>"Record deleted."
]);
}
else{
return response()->json([
'error' => "You can not delete this"
], 400); // 400 means bad request
}
}
發送 400 的回應代碼將使 AJAX 了解存在錯誤。
uj5u.com熱心網友回復:
public function destroy($id)
{
$user = User::find($id);
if($user->type !== 0) {
$user->delete();
return response()->json([
'status' => 'success', "message" => "Record deleted."
]);
}
else{
return response()->json([
'status' => 'error', "message" => "You can not delete this"
]);
}
}
像這樣編輯您的控制器。
$(".deleteRecord").click(function(){
var id = $(this).data("id");
var token = $("meta[name='csrf-token']").attr("content");
if(confirm('Do you want to delete?')){
$.ajax(
{
url: "operDel/" id,
type: 'post',
cache: false,
data: {
"id": id,
"method": 'post',
"_token": token,
},
dataType: "json",
success: function(response) {
if(response.status == "success"){
alert('Record is deleted'); // I getting only this alert
}else if(response.status == "error"){
alert('You can not delete this record');
}
},
});
}
});
這是使用它的一種方式。你的函式總是回傳成功。因為你沒有使用你的控制器 try catch 并且沒有錯誤。如果發生錯誤,您的 js 將起作用。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/350454.html
標籤:javascript 查询 阿贾克斯 拉拉维尔
