簡體   English   中英

Laravel5 Ajax刪除不起作用

[英]Laravel5 ajax delete wouldn't work

我正在開發一個項目,該項目中應使用ajaxusers表中刪除用戶。 我一直在尋找多種解決方案,但是它根本無法正常工作。 這是我得到的錯誤:

加載資源失敗:服務器響應狀態為500(內部服務器錯誤)

VerifyCsrfToken.php第46行中的TokenMismatchException

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');

UsersController:

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',
            ]);
    }

這是怎么了?

可能是由於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令牌添加到您的請求中。

在這里查看有關的信息。

找到路由,否則我將捕獲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);
        }
    });
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM