У меня есть следующий вызов Ajax на click()
, запись удаляется из таблицы базы данных, но выполняется код секции ошибки ajax, а не раздел успеха. Также я получаю ошибку 405,
Но записи удаляются, Ниже приведен код.
$(".DeleteUser").click(function(){
var id = $(this).data("id");
var token = $(this).data("token");
$.ajax(
{
url: "users/"+id,
type: 'DELETE',
dataType: "text",
data: {
"id": id,
"_method": 'DELETE',
"_token": token,
},
success: function ()
{
console.log("it Work");
},
error: function() {
alert('fail');
}
});
console.log("It failed");
});
Код сервера:
public function destroy($id) {
$user = $this->find($id);
$user->delete();
$notification = array(
'message' => 'User has been Deleted !',
'alert-type' => 'success',
);
return redirect()->route('users.index');
}
вы не заканчиваете свой ответ. Но перенаправление на другую страницу.
Пропустите это перенаправление и завершите цикл запроса-ответа.
public function destroy($id) {
$user = $this->find($id);
$user->delete();
$notification = array(
'message' => 'User has been Deleted !',
'alert-type' => 'success',
);
//return redirect()->route('users.index'); //skip it
header('Content-Type: application/json');
echo json_encode($notification);
}
Вы использовали 'type: "DELETE"'. Вместо этого вы должны ИСПОЛЬЗОВАТЬ 'type: "post"'. Вы также можете использовать 'get'