首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >获取错误:在laravel 8中CSRF令牌不匹配

获取错误:在laravel 8中CSRF令牌不匹配
EN

Stack Overflow用户
提问于 2022-04-03 15:57:09
回答 1查看 2.6K关注 0票数 1

我正在尝试提交一个使用ajax的laravel表单,它有一些输入类型和上传文件选项。在提交一份表格后,我发现了一个错误-

代码语言:javascript
运行
复制
{message: "CSRF token mismatch.", exception: "Symfony\Component\HttpKernel\Exception\HttpException",…}exception: "Symfony\Component\HttpKernel\Exception\HttpException"file: "D:\development\laravel\parangatcrm\vendor\laravel\framework\src\Illuminate\Foundation\Exceptions\Handler.php"line: 389message: "CSRF token mismatch."

I have added this in my blade file -
 <meta name="csrf-token" content="{{ csrf_token() }}"> 
<input type="hidden" name="csrf-token" value="{{ csrf_token() }}">

This is my ajax code - 
$.ajax({
                    url: url,
                    type: 'PATCH',
                    data: new FormData($("#formId")[0]),
                    cache : false,
                    processData: false,
                    contentType: false,
                    success: function (res){
                        console.log(res);
                    }
                    ,error: function (err){
                        console.log(err);
                    }
                });
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-03 17:06:08

您需要在报头上发送csrf令牌,而不是使用表单数据。在您的代码中尝试这样的操作:

若要在每个请求中添加默认标题,请使用$.ajaxSetup():

代码语言:javascript
运行
复制
 $.ajaxSetup({
            headers: {
                'X-CSRF-Token': $('meta[name="csrf-token"]').attr('content')
            }
        });

或者,您可以像下面的代码那样添加标题:

代码语言:javascript
运行
复制
$.ajax({
                        url: url,
                        headers: { 'X-CSRF-Token': ('meta[name="csrf-token"]').attr('content') }
                        type: 'PATCH',
                        data: new FormData($("#formId")[0]),
                        cache : false,
                        processData: false,
                        contentType: false,
                        success: function (res){
                            console.log(res);
                        }
                        ,error: function (err){
                            console.log(err);
                        }
                    });
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71727557

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档