Laravel 419通过邮递员发出的POST请求出错

Laravel 419通过邮递员发出的POST请求出错,laravel,post,Laravel,Post,我正试图通过POSTMAN应用程序向运行Laravel5.6的API发送POST请求 我的路线如下: Route::post('/charge','Charge@index'); Charge and index函数只是var_转储post参数: class Charge extends Controller { public function index() { var_dump($_POST); } } 我得到的响应是419未知状态错误。我不知道

我正试图通过POSTMAN应用程序向运行Laravel5.6的API发送POST请求

我的路线如下:

Route::post('/charge','Charge@index');
Charge and index函数只是var_转储post参数:

class Charge extends Controller
{
    public function index()
    {
        var_dump($_POST);
    }

}
我得到的响应是419未知状态错误。我不知道问题出在哪里

我不确定这里还包括哪些信息,但请询问是否需要其他信息来帮助解决此问题

谢谢,
J

这可能是因为您没有发送带有表单数据的csrf令牌

在laravel中,每个请求都必须发送csrf令牌

如果您不想发送,请在
app/http/middleware/VerifyCsrfToken.php
文件中提及您的方法名称

<?php

namespace App\Http\Middleware;

use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as Middleware;

class VerifyCsrfToken extends Middleware
{

    protected $addHttpCookie = true;

   protected $except = [
    'auth/facebook/callback',
    'auth/google/callback',
];
}

我在向邮递员发出get请求时,遇到了419个错误。但是,如果您仍然想知道如何找到
csrf
令牌,即使您正在发出GET请求并面对状态419。在我的例子中,我通过在标题中添加
用户代理:xxxx
令牌解决了这个问题

例如:

user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36

如果在邮件头上使用邮递员,请添加

(键)(值)
X-CSRF-TOKENYVTHZSTYEQKAPZEQ5GHTVLYXHFSAFE

你可以通过添加找到价值

public function index()
{
    return csrf_token(); 
}

然后,您将获得csrf的值。您需要在发送请求时提供csrf令牌。在这种情况下,您需要csrf令牌

在web.php上生成CSRF令牌

发送带有令牌的请求|将以下内容放在头上 |应在每次请求时更改令牌


您从POSTMANI发送数据的方法是什么?我在POSTMAN中选择了POST,然后添加了一个名为“test”的键,其值为“hello world”。我尝试将其添加为POSTMAN中所有可用的键/值选项,所有选项都给出相同的419响应。当CSRF验证失败时,Laravel抛出419错误。另外,不要尝试使用
$\u POST
访问表单数据。看起来你可以通过阅读Laravel文档来学习这些基本知识:我只是为了调试目的而转储$u POST。我没有意识到CSRF令牌,我将回到文档中。Thankyou@JamLis您仍然应该使用
Request
类来访问表单数据,即使是出于“调试”的目的
    Route::get('/token', function () {
        return csrf_token(); 
    });
(KEY)           (VALUE)
X-CSRF-TOKEN    MGpzhSLdVWdB7ddQSR8B6iu3A89A6LW7UPT0zmO2