当通过Ajax进行POST时,Laravel 5.6 CSRF令牌失败

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了当通过Ajax进行POST时,Laravel 5.6 CSRF令牌失败相关的知识,希望对你有一定的参考价值。

我正在使用WYSIWYG编辑器并希望将媒体发布到控制器,此操作通过ajax完成。

在标题中我有:

<meta name="csrf-token" content="{{ csrf_token() }}">

我添加了一个额外的请求标头;

var token = $('meta[name="csrf-token"]').attr('content');

$('textarea.default').froalaEditor({
  requestHeaders: {
    _token: token,
  },
  charCounterCount: false,
})

然而,当ajax发射时,我得到了一个419 unknown status error但是我发布了我的CSRF令牌以及请求所以我不知道为什么我会收到这个错误。

答案

确保存在名为“csrf-token”的元标记

要么

在你的ajax中使用它:

_token: {{csrf_token()}},

如果它不起作用,则在ajax的数据对象中发送csrf标记

$.ajax({
        url: '////',
        data: {_token: {{csrf_token()}}},
        success: function (data) {
            console.log(data)
        }
    });

以上是关于当通过Ajax进行POST时,Laravel 5.6 CSRF令牌失败的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 5.1 AJAX - 即使我发送 POST 请求,也不允许返回 405 GET 方法

如何通过 post 方法将数据从 ajax 传递到 laravel 5.2 控制器

Laravel 5:Ajax Post 500(内部服务器错误)

每当进行 AJAX POST 时,Laravel 4 应用程序都会将用户注销

无法通过 jquery Ajax 在 laravel 5 中发布

Laravel 5:Ajax Post 500(内部服务器错误)错误