Laravel 5 GET api呼叫正在运行,但POST api呼叫无效

时间:2018-06-13 12:02:18

标签: laravel laravel-5 eloquent laravel-5.2

如何在laravel中的API路由上禁用CSRF验证?

API routes我通过POST和GET方法调用函数。获取方法返回数据,但POST方法抛出方法未找到异常。

以下是routes/api.php

中的示例代码
Route::post('hellopostapi', function() {
    return json_encode( 'we are getting POST response');
});

Route::get('helloget', function() {
    return json_encode( 'we are getting GET response);
});

对于GET电话,我按预期收到回复。 对于POST我得到了这个例外

  

“message”:“”,       “异常”: “的Symfony \元器件\ HttpKernel \异常\ MethodNotAllowedHttpException”,

"file": "/var/www/html/vendor/laravel/framework/src/Illuminate/Routing/RouteCollection.php",

"line": 255,

"trace": [
    {
        "file": "/var/www/html/vendor/laravel/framework/src/Illuminate/Routing/RouteCollection.php",

        "line": 242,

        "function": "methodNotAllowed",

        "class": "Illuminate\\Routing\\RouteCollection",

        "type": "->"
    },
    {
        "file": "/var/www/html/vendor/laravel/framework/src/Illuminate/Routing/RouteCollection.php",
        "line": 176,
        "function": "getRouteForMethods",
        "class": "Illuminate\\Routing\\RouteCollection",
        "type": "->"
    },

我还在verifycsrf.php中添加了api路由,根据它应该工作的文档,不幸的是它不适合我。 这是我的verifiycsrf.php

class VerifyCsrfToken extends BaseVerifier
{
    /**
     * The URIs that should be excluded from CSRF verification.
     *
     * @var array
     */
    protected $except = [
        'api/*',
    ];
}

API测试截图 导致问题的POST请求 enter image description here

获取正常工作的请求 enter image description here 那还不行。任何人都可以帮助我。谢谢你

2 个答案:

答案 0 :(得分:0)

检查您要发布的表单方法,很可能该方法已经在路由文件中使用GET方法,您已将其配置为期望POST方法

答案 1 :(得分:0)

深入研究这一点,我发现这绝不是一个laravel问题,而是由于HTTP到HTTPS重定向导致的。 将http更改为https后,问题似乎得到了重新解决。 :)