Я хочу получить результат ответа от запроса ajax, когда я нажимаю кнопку со значением «Принять» для отправки на сервер. Спасибо за помощь.
Я получаю ошибку 419 POST http://localhost:8000/posts/list_post_ajax 419 (неизвестный статус)
<table class = "table table-bordered">
<thead class = "thead-inverse">
<tr>
<th>Post ID</th>
<th>User ID</th>
<th>Name User</th>
<th>Title</th>
<th>Content</th>
<th>Datetime</th>
<th>Status</th>
<th>Accept</th>
</tr>
</thead>
<tbody>
@foreach ($posts as $row)
<tr id = "{{ $row->post_id }}">
<td>{{$row->post_id}}</td>
<td>{{$row->user_id}}</td>
<th>{{$row->users->name}}</th>
<td>{{$row->post_title}}</td>
<td>{{$row->post_content}}</td>
<td>{{$row->post_datetime}}</td>
<td>{{$row->post_status}}</td>
<td>
<button class = "btn btn-success accept-btn" data-postID = "{{$row->post_id}}">Accept</button>
</td>
</tr>
@endforeach
</tbody>
</table>
<script>
$(document).ready(function () {
$('.accept-btn').click(function(){
var postId = $(this).attr('data-postID');
console.info(postId)
$.ajax({
type: "POST",
url: "{{route('posts.list_post_ajax')}}",
data: { postId: postId },
dataType: 'JSON',
success :function(response) {
alert("thank u");
},
});
})
});
</script>
-- Маршрут:
Route::post('/list_post_ajax','PostController@list_post_ajax')->name('posts.list_post_ajax');
public function list_post_ajax()
{
return response()->json('success');
}
Возможный дубликат Laravel 5.5 ajax-вызов 419 (неизвестный статус)
Да, я исправил эту проблему. Большое спасибо





отправить также токен данные: {postId:postId,_token:'{{ csrf_token() }}' }
Да, я исправил эту проблему. Большое спасибо
Вам необходимо отправить токен CSRF в вашем почтовом запросе. Итак, настройте кулак ajax, например:
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name = "csrf-token"]').attr('content')
}
});
И отправьте запрос сейчас
$.ajax({
type: "POST",
url: "{{route('posts.list_post_ajax')}}",
data: { postId: postId },
dataType: 'JSON',
success :function(response) {
alert("thank u");
},
});
Установите метатег в свой <head>
<meta name = "csrf-token" content = "{{ csrf_token() }}">
Да, я исправил эту проблему. Большое спасибо
Тебя не хватает csrf-token.
Вы можете прочитать об этом здесь: https://laravel.com/docs/5.8/csrf
Короче говоря: у вас есть 3 способа решить эту проблему:
1. Исправьте глобально:
Добавьте это в свою настройку ajax (чтобы она выполнялась на каждой странице вашего проекта):
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name = "csrf-token"]').attr('content')
}
});
и добавьте это в свой основной макет:
<meta name = "csrf-token" content = "{{ csrf_token() }}" />
и теперь у вас будет это готово для каждого запроса ..
2. исправить это только для текущей конечной точки:
добавьте _token к полезной нагрузке вашего запроса:
data: {
"_token": "{{ csrf_token() }}",
"id": id
}
3. или исключить ваш маршрут из промежуточного ПО, которое его блокирует (вероятно VerifyCSRF):
protected $except = [
'route/*',
];
Да, я исправил эту проблему. Большое спасибо
Вы получаете сообщение об ошибке 419, потому что отправляете запрос без токена csrf на URL-адрес, защищенный csrf.