2017-02-11 20 views
0

私のウェブルートは機能していますが、APIルートにはPOSTできません。MethodNotAllowedHttpExceptionが届きます。私はGETが動作するので、これはcsrfトークンの問題だと思いますが、それを修正する方法を理解することはできません。 apiリクエストをシミュレートするためにPostmanを使用しています。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私は郵便配達員を使って電話をしています。私はPOSTリクエストでwww.mydomain.com/apiを呼び出しています – meeeee

+0

こんにちは@meeeeeこの問題の解決策を見つけましたか?私は似たような問題を抱えています。 –

答えて

0

と、このよう_token値を送信します。問題は、私がhttpsを使用していなかったことです。その奇妙な方法は、私はそれのためにMethodNotAllowedExceptionを得る、私は私を捨てたと思う。

+0

正直を愛しているブリリアントX'D:p – sourRaspberri

1

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