2017-02-11 9 views
0

Мои веб-маршруты работают, однако я не могу отправить POST на мои маршруты api, я получаю MethodNotAllowedHttpException. Я думаю, что это проблема csrf-токена, поскольку GET работает, но я не могу понять, как это исправить. Я использую Postman для имитации запросов api.Laravel 5.4 API route

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