2017-02-11 130 views
0

我的网络路由正在工作,但是我无法发布到我的api路由,我收到MethodNotAllowedHttpException。我认为这是GET工作的csrf标记问题,但我无法弄清楚如何解决它。我正在使用邮差模拟API请求。Laravel 5.4 API路由

auth.php

'guards' => [ 
    'web' => [ 
     'driver' => 'session', 
     'provider' => 'users', 
    ], 

    'api' => [ 
     'driver' => 'token', 
     'provider' => 'devices', 
    ], 
], 

RouteServiceProvider.php

protected function mapApiRoutes() 
{ 
    Route::middleware('api') 
     ->namespace($this->namespace) 
     ->group(base_path('routes/api.php')); 
} 

路由/ api.php

Route::post('api', ['uses' => '[email protected]']); 

kernel.php

protected $middlewareGroups = [ 
    'web' => [ 
     \App\Http\Middleware\EncryptCookies::class, 
     \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, 
     \Illuminate\Session\Middleware\StartSession::class, 
     // \Illuminate\Session\Middleware\AuthenticateSession::class, 
     \Illuminate\View\Middleware\ShareErrorsFromSession::class, 
     \App\Http\Middleware\VerifyCsrfToken::class, 
     \Illuminate\Routing\Middleware\SubstituteBindings::class, 
    ], 

    'api' => [ 
     'throttle:60,1', 
     'auth:api', 
     'bindings', 
    ], 
]; 

这是从旧版本的Laravel升级而来的,我通过安装Laravel 5.4的全新副本升级,然后复制到我的代码中,根据需要进行更改。

+0

从哪里和如何打电话?如果来自ajax共享该代码? –

+0

@ detective404我正在使用邮递员来打电话。我打电话给www.mydomain.com/api POST请求 – meeeee

+0

嗨@meeeee您是否找到了解决此问题的方法。我有类似的问题,如果它在你身边解决,然后让我知道。 –

回答

0

对不起,我在一个月前提出这个同样的错误。问题是我没有使用https。奇怪的是,我为此得到了MethodNotAllowedException,我猜这让我很失望。

+0

辉煌X'D爱的诚实:p – sourRaspberri

1

发送_token值这样用POST请求

$.ajax({ 
     type: "POST", 
     url: "/your url", 
     data: {_token:$("input[name='_token']").val(),'other':'Other value'} 
    }).done(function(response) { 
     .... 
    }); 
+0

使用api时,这对我没有意义。不应该需要令牌 – meeeee

+0

您正在调用哪个网址? –

+0

mydomain.com/api – meeeee