尝试在 Laravel 中使用 AJAX POST 请求从数据库中删除数据时,您可能会遇到错误“CSRF令牌不匹配。”发生这种情况是因为 Laravel 在所有形式中都包含 CSRF 令牌,以防止跨站点请求伪造攻击。
提供的 HTML 和 AJAX 代码显示了删除的设置数据:
HTML:
@foreach($a as $lis) //some code <a href="#">
AJAX 代码:
$('body').on('click', '.delteadd', function (e) { e.preventDefault(); //alert('am i here'); if (confirm('Are you sure you want to Delete Ad ?')) { var id = $(this).attr('id'); $.ajax({ method: "POST", url: "{{url()}}/delteadd", }).done(function( msg ) { if(msg.error == 0){ //$('.sucess-status-update').html(msg.message); alert(msg.message); }else{ alert(msg.message); //$('.error-favourite-message').html(msg.message); } }); } else { return false; } });
要解决“CSRF 令牌不匹配”错误,您必须包含 CSRF AJAX 请求中的令牌。这可以通过将以下代码添加到您的请求中来完成:
data: { "_token": "{{ csrf_token() }}", "id": id }
更新的 AJAX 代码:
$('body').on('click', '.delteadd', function (e) { e.preventDefault(); //alert('am i here'); if (confirm('Are you sure you want to Delete Ad ?')) { var id = $(this).attr('id'); $.ajax({ method: "POST", url: "{{url()}}/delteadd", data: { "_token": "{{ csrf_token() }}", "id": id } }).done(function( msg ) { if(msg.error == 0){ //$('.sucess-status-update').html(msg.message); alert(msg.message); }else{ alert(msg.message); //$('.error-favourite-message').html(msg.message); } }); } else { return false; } });
添加此内容后,您的 AJAX 请求将包括CSRF 令牌以及执行删除操作所需的数据。
以上是如何解决 Laravel AJAX POST 请求中的'CSRF 令牌不匹配”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!