問題

我想從資料庫中刪除資料,使用ajax呼叫,但它顯示錯誤.

CSRF令牌不匹配

標題:

 <meta name="csrf-token" content="{{ csrf_token() }}">
 

在刀片中:

 <button class="deletePhoto" data-id="{{ $photo->id }}" data-token="{{ csrf_token() }}">Delete</button>
 

Ajax呼叫:

 $('.deletePhoto').click(function () {

    var id = $(this).data('id');
    var el = this;

    $.ajaxSetup({
       headers:{
           'X_CSRF_TOKEN': $('meta[name="csrf-token"]').attr('content')
       }
    });
    $.ajax({
        url: '/photo/delete/'+id,
        type: 'DELETE',
        dataType: 'JSON',
        data:{
            'id': id,
        },
        success: function () {
            $(el).closest(".photo-details").remove();
            console.log('DELETED');
        },
        error: function (xhr) {
            console.log(xhr.responseText);
        }
    })
})
 

控制器:

 public function destroy($id)
{
    $photo = Photo::find($id);
    $photo->delete();

}
 

  最佳答案

這是我通常做的事情:[AJAX CALL]

  $.ajax({
    url: '/photo/delete/'+id,
    type: 'DELETE',
    dataType: 'JSON',
    data:{
        'id': id,
        '_token': '{{ csrf_token() }}',
    },
    success: function () {
        el.closest(".photo-details").remove();
        console.log('DELETED');
    },
    error: function (xhr) {
        console.log(xhr.responseText);
    }
})
 

希望我的答案有所幫助!

  相同標籤的其他問題

phpajaxlaravellaravel-6