2017-01-24 10 views
1

新しいLaravel 5.3アプリケーションでRESTful APIを作成しています。Laravel 5.3すべてのミドルウェアがコメントアウトされていても、APIルートがリダイレクトされています

私はそうのようroutes/api.phpで定義されたリソースを持っている:

Route::resource('/simple-path', 'Api\ControllerName'); 

ルート自体に添加していないミドルウェアはありません、またそのコントローラのコンストラクタで追加されたがあり、またに追加されたミドルウェアがあります親コントローラ/クラス。

しかし、Laravelは(?)GET以外の任意のHTTP動詞の/に302リダイレクトを保持し、私はその理由を把握しようとしている自分自身に狂気を運転しています。のすべてのミドルウェアをコメントアウトしても、curlまたはPostManの/simple-pathへの簡単なPOSTコールを実行するたびにリダイレクトされます。今

は、特にPOSTのために、私は間違っている、私は私のAPIの auth:apiミドルウェアをしたい 取得したり、要求を置くが、私はどんな存在しないときにリダイレクトするために、それを引き起こしているかを把握することはできませんしないでください最初はミドルウェアを実行しています(私が知る限り)。

私が見つけることができるミドルウェアに関するすべてのドキュメントを読んだことがあります。これを引き起こしている可能性のあるミドルウェア以外があるのだろうか?これはかなり新鮮なアプリなので、基本的なインストールからあまり変わっていません。

+0

コントローラレベルのミドルウェアを実行するコントローラを拡張していますか? https://laravel.com/docs/master/controllers#controller-middleware(コントローラーメソッド内) – Chris

+1

あなたのルートに/ api.php 'Route :: post( '/ test'、function(){応答を返します(["message" => "test"]、200);}); 'http:// yourpath.com/api/test'に投稿しようとします。正しい応答を返さなければならないからです。 – AfikDeri

+0

ミドルウェアを削除してもエラーは発生しません。 –

答えて

0

ここに自分の質問に答えるつもりです。リダイレクションはミドルウェアによるものではなく、FormRequestによるものです。私はコントローラークラスのstore()関数で作成したFormRequestサブクラスをヒントしていました。このため、最初にrules()の検証を実行しました。必要なフィールドが見つからない場合は、FormRequestクラスが独自のresponse()メソッドを使用してリダイレクトしていました。だから私は単に(今のところ)私FormRequestサブクラスにこれを追加しました:このリダイレクトを修正するには

use Illuminate\Support\Facades\Response; 

public function response(array $errors) 
{ 
    return Response::json($errors, 400); 
} 
+0

私は同じリダイレクトに関するいくつかの疑問を持っています。あなたはこのチャットルームで私に参加することはできますか?chat.stackoverflow.com/rooms/135960/laravel –

1

残りのクライアントからlaravel APIルートを呼び出し中に、ちょうどセットヘッダパラメータは「アプリケーション/ JSON」に「同意する」、およびそれうまく動作します。

関連する問題