[英]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.