Я использую 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');
В чем может быть проблема?
Я думаю, что проблема в том, что вы используете 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);
}
});
Других решений пока нет …