解决 Laravel 中 AJAX POST 请求的 CSRF 令牌不匹配问题
在 Laravel 中发出 AJAX POST 请求时,必须包含 CSRF 令牌防止跨站请求伪造攻击。在本文中,我们将解决“ajax POST 请求的 CSRF 令牌不匹配”问题。
问题描述
您正在尝试从数据库中删除数据通过 AJAX 请求。您的 HTML 包含点击后会触发删除的链接。相应的 AJAX 代码向特定 URL 发送 POST 请求。但是,删除失败,并且您收到“CSRF 令牌不匹配”错误。
解决方案
要解决此问题,您必须在 AJAX 中包含 CSRF 令牌要求。这可以通过将以下行添加到数据参数中来完成:
data: { "_token": "{{ csrf_token() }}", "id": id }
其中 id 代表您尝试删除的记录的 ID。此令牌可确保服务器在执行删除操作之前验证请求。
更新的 AJAX 代码
以下是包含 CSRF 令牌的更新的 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 令牌,您可以确保服务器验证该请求,并且删除操作将成功,并且不会出现“CSRF 令牌不匹配”错误。
以上是如何修复 Laravel 中的'AJAX POST 请求的 CSRF 令牌不匹配”?的详细内容。更多信息请关注PHP中文网其他相关文章!