2016-11-25 14 views
2

新しい5.3のインストールがあり、postmanとapiコールをしたい。私はangular2で郵便配達員に問題がないことを確認することも試みました。フィールドのメールアドレスとパスワードがある場合はLaravel Validation ajaxコール後のリダイレクト

Route::post('test', function(\App\Http\Requests\LoginRequest $request) { 
    return $request->all(); 
}); 

LoginRequestがチェックされています。私のroutes/api.php

は、私は簡単なルートを得ました。そうであれば、出力は除外されます。しかし、欠けている場合は、/にリダイレクトされます。

ajax呼び出しのフォーム検証にいくつかの情報を追加する必要がありますか?私はlaravelがajax呼び出しがあるときにjsonエラーオブジェクトを返すと思った。

更新:

私はポストマンにAccept application/jsonヘッダを逃したことが分かりました。それでそれはfinde動作します。しかし、すべてのapi/*呼び出しをjson呼び出しとして扱うべきだと言う方法はありますか?

+0

AJAXリクエストを送信したときにどのようにリダイレクトされますか?応答として '/'の内容を取得しますか? – TheFallen

+0

私の答えが – mimo

+0

に更新されました。http://stackoverflow.com/questions/31507849/how-to-force-formrequest-return-json-in-laravel-5-1 – tam5

答えて

0

あなたはできる、私は私の要求のための新しい親クラスを作成し、この

return response()->json(array('error' => $validator->getMessageBag()->toArray()), 400); 

応答ステータス400がエラーを示し、エラーセクションに

error: function(jqXHR, textStatus, errorThrown){  
    var errResponse = JSON.parse(jqXHR.responseText); 
    if (errResponse.error) { 
    $.each(errResponse.error, function(index, value) 
    { 
     console.log(value); 
    }); 
    } 
} 
+0

私は 'FormRequest'クラスを使いたいので、コントローラ内のコードはできるだけ小さいです。 – mimo

1

を取得するようにAJAX呼び出しへの応答。ルートがapiグループに属するかどうかをチェックします。グループにミドルウェアを追加してヘッダーを追加しようとしましたが、このトリックは失敗しました。

class JsonRequest extends FormRequest 
{ 
    public function expectsJson() 
    { 
     return ($this->route()->getAction()['middleware'] == 'api'); 
    } 
} 
関連する問題