通过POSTMAN

时间:2018-09-18 15:03:59

标签: laravel post

我正在尝试通过POSTMAN应用程序向运行Laravel 5.6的API发送POST请求。

我的路线如下:

Route::post('/charge','Charge@index');

和Charge and index函数只是var_dumps post参数:

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

}

我得到的响应是419个未知状态错误。我不知道问题是什么。

我不确定此处还包含哪些其他信息,但是请问是否需要其他任何帮助来解决此问题。

谢谢, J

5 个答案:

答案 0 :(得分:5)

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

在laravel中,必须在每次请求时发送csrf令牌。

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

答案 1 :(得分:0)

我从POSTMAN发出了获取请求,并且遇到419错误。但是,如果您仍然想知道如何找到csrf令牌,即使您正在发出 GET 请求并面临状态 419 。就我而言,我通过在标头中添加 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

答案 2 :(得分:0)

如果在标题上使用邮递员,请添加

(KEY)(VALUE)
X-CSRF-TOKEN yvthwsztyeQkAPzeQ5gHgTvlyxHfsAfE

您可以通过添加找到VALUE

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

并在您的路线名称上发送GET,那么您将获得VALUE的csrf

答案 3 :(得分:0)

你需要在你发送的请求中提供 CSRF 令牌,在这种情况下你需要一个 CSRF 令牌。

<块引用>

在 web.php 上生成 CSRF 令牌

    Route::get('/token', function () {
        return csrf_token(); 
    });
<块引用>

使用令牌发送请求 | 将以下内容放在标题上 |每个请求都应该更改令牌

(KEY)           (VALUE)
X-CSRF-TOKEN    MGpzhSLdVWdB7ddQSR8B6iu3A89A6LW7UPT0zmO2

答案 4 :(得分:0)

我遇到了同样的问题,我找到的唯一解决方案是从 csrf 验证文件中删除那个确切的 url,其名称为 VerifyCsrfToken.php,位于

app\Http\Middleware\VerifyCsrfToken.php

打开该文件后,您只需将您正在执行发布请求的确切网址放入 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:这是针对开发环境我想您最终将不得不撤消此操作,因此,如果我错了,有人会纠正我。