【问题标题】:CSRF Token Mismatch Laravel 5..8CSRF 令牌不匹配 Laravel 5..8
【发布时间】:2019-11-24 14:48:48
【问题描述】:

我遇到一个问题,我不知道它为什么会显示此错误。我有一个通过 ajax 发布的表单。我在视图的头部添加了隐藏字段元标记。当我执行我的 ajax 调用我正在使用 Ajaxsetup 来引入令牌。

这是我视图头部的 html 元标记。

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

我的 ajax 调用是

$('#login_model_submit').on('click', function () {
    $.ajaxSetup({
        headers: {
            'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
        }
    });

    let url = window.location.origin + '/login';
    let data = {
        'email': $('#login_email').val(),
        'password': $('#login_password').val(),
        '_token': $('meta[name="csrf-token"]').attr('content')
    };

    $.ajax({
        url: url,
        type: 'POST',
        data: data,
        success: function () {
            alert('Success')
        },
        error: function (e) {
            alert(e.responseText)
        }
    });
});

不知道为什么我得到 csrf 令牌不匹配。我已经完成了我在此处的许多问题/答案中看到的内容,但这很简单,不起作用。非常感谢任何帮助。

这是我的请求标头

Accept: */*
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9
Connection: keep-alive
Content-Length: 49
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Host: vb.local
Origin: http://vb.local
Referer: http://vb.local/
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 
(KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36
X-CSRF-TOKEN: YpP9izd705ztdtyqyFTBByLqcNmzoUIyb3i07HlA
X-Requested-With: XMLHttpRequest

【问题讨论】:

  • 您是否使用过开发工具来验证请求中确实发送了标头?
  • 是的,我有它,但仍然是错误。
  • 尝试更改 url 例如:let url = '/login'

标签: jquery ajax laravel-5.8


【解决方案1】:

此问题来自失败的 CSRF 令牌验证。所以要么你没有发布一个,要么你发布了一个不正确的。

在您的表单中使用{{ csrf_field() }}

将您的路由 URL 添加到 Http/Middleware/VerifyCsrfToken.php 文件中。

这样的例子。如果你的ajax路由Route::post('searchsubmit','User\UserController@ViewSearchList')-&gt;name('searchsubmit');

Http/Middleware/VerifyCsrfToken.php

protected $except = [
       'searchsubmit',
    ];

在您的情况下,您需要像这样添加login

protected $except = [
           'login',
        ];

然后清除缓存

php artisan config:clear
php artisan cache:clear
php artisan config:cache

【讨论】:

  • @Eric Evans 我面临同样的问题,这个解决方案对我有用。
猜你喜欢
  • 2016-09-20
  • 2016-10-15
  • 2020-07-08
  • 2016-12-10
  • 2020-01-20
  • 2020-06-17
  • 1970-01-01
  • 2020-05-02
  • 2020-04-14
相关资源
最近更新 更多