[英]Laravel 419 error on POST request via POSTMAN
我正在尝试通过 POSTMAN 应用程序向运行 Laravel 5.6 的 API 发送 POST 请求。
我的路线如下:
Route::post('/charge','Charge@index');
并且 Charge 和 index 函数只是 var_dumps 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',
];
}
如果在标题上使用邮递员添加
(核心价值)
X-CSRF-TOKEN yvthwsztyeQkAPzeQ5gHgTvlyxHfsAfE
您可以通过添加找到 VALUE
public function index()
{
return csrf_token();
}
并在您的路线名称上发送 GET 然后您将获得 csrf 的价值
我遇到了同样的问题,我发现的唯一解决方案是从 csrf 验证文件中删除那个确切的 url,该文件名为VerifyCsrfToken.php
,位于
app\\Http\\Middleware\\VerifyCsrfToken.php
打开该文件后,您只需将您正在执行发布请求的确切 url 放入except变量中,如下所示:
<?php
namespace App\Http\Middleware;
use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as Middleware;
class VerifyCsrfToken extends Middleware
{
/**
* The URIs that should be excluded from CSRF verification.
*
* @var array
*/
protected $except = [
//
'http://localhost/api2/public/user' //This is the url that I dont want Csrf for postman.
];
}
之后,我可以从邮递员那里完成我的邮寄请求。
PD:这是针对开发环境的,我想您最终将不得不撤消此操作,因此,如果我错了,有人会纠正我。
我正在从 POSTMAN 发出获取请求并面临 419 错误。 但是,万一您在发出GET请求并面临状态419时仍然想知道如何找到csrf
令牌。 就我而言,我通过在标题中添加user-agent: 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
你需要在你发送的请求中提供 CSRF 令牌,在这种情况下你需要一个 CSRF 令牌。
在 web.php 上生成 CSRF 令牌
Route::get('/token', function () {
return csrf_token();
});
使用令牌发送请求 | PUT FOLLOWING ON HEADERS |每个请求都应该更改令牌
(KEY) (VALUE)
X-CSRF-TOKEN MGpzhSLdVWdB7ddQSR8B6iu3A89A6LW7UPT0zmO2
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.