【问题标题】:Laravel5 ajax delete wouldn't workLaravel5 ajax 删除不起作用
【发布时间】:2017-04-04 15:20:57
【问题描述】:

我正在处理一个项目,我应该使用 ajaxusers 表中删除用户。我一直在寻找多种解决方案,但无论如何它根本行不通。这是我得到的错误:

加载资源失败:服务器响应状态为 500(内部服务器错误)

JS:

$('.btn-delete').click(function(){
    var id = $(this).val();
    $.ajax({
        type: 'DELETE',
        url: '/laravel-exercise/public/index/'+id,
        success: function (data) {
            console.log('Success:', data);
        },
        error: function (data) {
            console.log('Error:', data);
        }
    });
});

查看:

<button class="btn btn-danger btn-delete"
 value="{{$user->id}}" data-token="{{ csrf_token() }}">Delete</button>

路线:

Route::delete('index/{$id}', 'UsersController@destroy');

用户控制器:

public function destroy($id)
    {
            $user = User::findOrFail($id);
            $user->delete();

            return view('pages.index')->with([
                'flash_message' => 'The user has been deleted.',
                'flash_message_important' => 'true',
            ]);
    }

这里出了什么问题?

【问题讨论】:

  • Error Internal Server-menas 你的 ajax 工作正常.... 最好看看 php 代码
  • Laravel 日志文件,请。
  • 我是 Laravel 新手,如果你能告诉我更多关于如何获取它的信息,我会很高兴地向你展示。
  • 谷歌,老兄,谷歌。 app/storage/logs - 如果没有日志文件,请确保已启用:laravel.com/docs/5.3/errors
  • 旁注,请务必提及人员(使用@),以便我们收到通知。我又一次偶然发现了这个,不知道你回复了。

标签: javascript php jquery ajax laravel-5


【解决方案1】:

可能是因为 CSRF 保护。

在绑定按钮点击之前尝试添加'X-CSRF-TOKEN'

$.ajaxSetup({
    headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
    }
});

$('.btn-delete').click(function(){
    var id = $(this).val();
    $.ajax({
        type: 'DELETE',
        url: '/laravel-exercise/public/index/'+id,
        success: function (data) {
            console.log('Success:', data);
        },
        error: function (data) {
            console.log('Error:', data);
        }
    });
});

将 CSRF 令牌添加到您的请求中。

查看here 了解有关信息。

路由找到了,否则我会捕获404异常。

编辑

看看您是如何制作按钮的,您还可以使用post 请求,但传递_method 数据。

HTML:

<button class="btn btn-danger btn-delete" value="{{$user->id}}"
     data-token="{{ csrf_token() }}">Delete</button>

Javascript:

$('.btn-delete').click(function(){
    var token = $(this).data('token');
    var id = $(this).val();

    $.ajax({
        url: '/laravel-exercise/public/index/'+id,
        type: 'post',
        data: {_method: 'delete', _token :token},
        success: function (data) {
            console.log('Success:', data);
        },
        error: function (data) {
            console.log('Error:', data);
        }
    });
});

【讨论】:

猜你喜欢
  • 2016-05-12
  • 2015-06-03
  • 2018-06-22
  • 1970-01-01
  • 2016-12-26
  • 2016-03-29
  • 1970-01-01
  • 1970-01-01
  • 2015-01-20
相关资源
最近更新 更多