使用 AJAX 在 Laravel 5.3 中删除记录

Posted

技术标签:

【中文标题】使用 AJAX 在 Laravel 5.3 中删除记录【英文标题】:Deleting a record in Laravel 5.3 using AJAX 【发布时间】:2017-02-19 22:10:48 【问题描述】:

我收到下一个错误:

jquery-2.2.4.min.js:4 DELETE http://company.dev/admin/portfolio/settings/category/delete/7 500(内部服务器错误)

我不确定它是什么,因为我认为我有正确的路线并且还提供了 csrf 令牌(对 laravel 来说还是相当新的)

路线:

   Route::delete('/admin/portfolio/settings/category/delete/id', [
      'as' => 'categoryDelete',
      'uses' => 'PortfolioController@destroy'
   ]);`enter code here`

阿贾克斯:

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

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

删除按钮:

 <button class="deleteProduct" data-id=" $category->category_id " data-token=" csrf_token() " >Delete Category</button>

删除函数:

public function destroy(Request $request, $id)

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

    return response()->json([
        'success' => 'Record has been deleted successfully!'
    ]);

【问题讨论】:

如果出现令牌问题,它不会是 500 你可以试试:Route::delete('/admin/portfolio/settings/category/delete/id', 'PortfolioController@destroy');die('route works');内部控制器(销毁功能)。您的请求中是否调用了仅删除 http 方法? 【参考方案1】:

您的控制器或模型有一些错误。可能是语法错误。尝试检查控制台 > 网络 > XHR。如果您使用的是 Google Chrome,则错误 ajax 请求将显示为红色。

【讨论】:

太棒了,我不知道它存在!非常感谢! 我建议检查应包含完整堆栈跟踪而不是控制台输出的应用程序日志,除非您向用户提供完整堆栈跟踪;) @jakub wrona 是有道理的 :)

以上是关于使用 AJAX 在 Laravel 5.3 中删除记录的主要内容,如果未能解决你的问题,请参考以下文章

本地主机上 laravel 5.3 中 ajax 发布请求中的 CSRF 令牌不匹配异常

在 laravel 5.3 中删除哈希进程

如何在不使用请求的情况下删除 Laravel 5.3 中的会话?

从 URL Laravel 5.3 中删除公共

Vue Router Laravel 5.3 Vue 2 JS 上的 CSRF 令牌复制

如何正确删除 Laravel 5.3 中用户表列中的“唯一”列属性?