首页 > 后端开发 > php教程 > 如何修复 Laravel 中的'AJAX POST 请求的 CSRF 令牌不匹配”?

如何修复 Laravel 中的'AJAX POST 请求的 CSRF 令牌不匹配”?

DDD
发布: 2024-12-10 07:51:14
原创
825 人浏览过

How to Fix

解决 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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板