【问题标题】:Deleting a record in Laravel 5.3 using AJAX使用 AJAX 在 Laravel 5.3 中删除记录
【发布时间】: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 方法?

标签: php jquery ajax laravel


【解决方案1】:

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

【讨论】:

  • 太棒了,我不知道它存在!非常感谢!
  • 我建议检查应包含完整堆栈跟踪而不是控制台输出的应用程序日志,除非您向用户提供完整堆栈跟踪;)
  • @jakub wrona 是有道理的 :)
猜你喜欢
  • 2017-01-14
  • 2019-04-12
  • 2015-08-22
  • 2019-12-11
  • 1970-01-01
  • 2017-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多