php - 如何使用ajax请求删除laravel 5.3中的记录?

标签 php ajax laravel laravel-5

我正在尝试在 laravel 5.3 中使用 ajax 删除记录,我知道这是一个常见问题,并且已经有很多关于此主题的在线解决方案和教程。我尝试了其中一些,但大多数都给我同样的错误 NetworkError: 405 Method Not Allowed。我试图从不同的角度来完成这项任务,但我被卡住了,找不到我错在哪里,这就是为什么我添加这个问题作为指导。

我正在尝试按照脚本删除记录。

Controller.php

public function destroy($id)
{   //For Deleting Users
    $Users = new UserModel;
    $Users = UserModel::find($id);
    $Users->delete($id);
    return response()->json([
        'success' => 'Record has been deleted successfully!'
    ]);
}

Routes.php

Route::get('/user/delete/{id}', 'UserController@destroy');

在 View 中

<button class="deleteProduct" data-id="{{ $user->id }}" data-token="{{ csrf_token() }}" >Delete Task</button>

App.js

$(".deleteProduct").click(function(){
        var id = $(this).data("id");
        var token = $(this).data("token");
        $.ajax(
        {
            url: "user/delete/"+id,
            type: 'PUT',
            dataType: "JSON",
            data: {
                "id": id,
                "_method": 'DELETE',
                "_token": token,
            },
            success: function ()
            {
                console.log("it Work");
            }
        });

        console.log("It failed");
    });

当我点击删除按钮时,它在控制台中返回错误 NetworkError: 405 Method Not Allowed。没有 ajax 相同的删除功能工作正常。

任何人都可以指导我解决问题的错误,如果有人指导我,我将不胜感激。谢谢..

最佳答案

不要使用 Route::get,而是使用 Route::delete

除此之外,将 ajax 调用中的 type: 'Put' 更改为 type: 'DELETE'


附言这段代码

$Users = new UserModel;        // Totally useless line
$Users = UserModel::find($id); // Can chain this line with the next one
$Users->delete($id);

可以写成:

UserModel::find($id)->delete();

或者更短:

UserModel::destroy($id);

请记住 ->delete() 会触发一个事件,而 ::destroy() 不会。

关于php - 如何使用ajax请求删除laravel 5.3中的记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39350918/

相关文章:

PHPMyAdmin 数据库用 0 而不是字符串填充字段

javascript - 稍后响应 AJAX 请求

javascript - 从原型(prototype)转换为jquery

laravel - 在 laravel mix 中需要一个 npm 包吗?

php - 合并两个查询并根据 Laravel 中的 created_at 对它们进行排序

php - Laravel 迁移 - 列已存在

php - 在 HTML 和 PHP 中使用单选按钮 'checked' 值

php - 显示数据库 CakePHP 中的最后 3 条记录

php - 删除在 Laravel 中不起作用的产品 url

ajax - 用于 CORS 的 Apache Solr : Setting HTTP Response Headers From solrconfig. xml