TokenMismatchException при удалении строки в БД

Я использую DropZone.js и laravel. Когда я пытаюсь удалить запись с помощью AJAX-запроса, я получаю ответ:

Упс, похоже, что-то пошло не так. 1/1 TokenMismatchException в
VerifyCsrfToken.php

var classElements = document.querySelectorAll("tr.ui-selected td.filename");

for(var x = 0;x < classElements.length;x++){
var result;
result = classElements[x].innerHTML;
var csrf = $('input[name=_token]').val();
$.ajax({
async: true,
type: "DELETE",
method: 'POST',
url: '../public/deletefile',
data: { filename: result, "_token": "{{ csrf_token() }}"  },
success: function(response) {
$('#results').html(response);
}
});

Это модель:

public function deleteUserFiles(){
$userid = Auth::id();
$result = $_POST['result'];
$deletedRows = App\Models\File::where('filename', $result)->where('userid', $userid)->delete();
}
}

И маршрут:

Route::post('deletefile', 'UserFiles@deleteUserFiles');

В чем может быть проблема?

2

Решение

Я думаю, что проблема в том, что вы используете csrf_token() в цикле. Я думаю, что ваш код JS должен выглядеть так:

var classElements = document.querySelectorAll("tr.ui-selected td.filename");
var csrf = $('input[name=_token]').val();

for(var x = 0;x < classElements.length;x++){
var result;
result = classElements[x].innerHTML;

$.ajax({
async: true,
type: "DELETE",
method: 'POST',
url: '../public/deletefile',
data: { filename: result, "_token": csrf  },
success: function(response) {
$('#results').html(response);
}
});
0

Другие решения

Других решений пока нет …