Laravel 419通过邮递员发出的POST请求出错
我正试图通过POSTMAN应用程序向运行Laravel5.6的API发送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未知状态错误。我不知道
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