2016-05-23 24 views
0

Laravel 5.2ドキュメントの状態:Laravel 5:AJAX要求と検証

AJAXは、この例では&検証

を要求し、我々は アプリケーションにデータを送信するために、伝統的なフォームを使用しました。ただし、多くのアプリケーションでAJAX要求が使用されます。 AJAXリクエスト中に のvalidateメソッドを使用すると、Laravelはリダイレクト応答 を生成しません。代わりに、Laravelはすべての検証エラーを含むJSON応答 を生成します。このJSON応答は、422 HTTPステータスコードとともに送信される になります。

のSrc:https://laravel.com/docs/5.2/validation#quick-ajax-requests-and-validation

しかし、これは正しいようではありません。

curl -X POST -H "Content-Type: application/json" 
-H "Cache-Control: no-cache" 
-d '{}' "http://yours.com/user/register" 

上記の応答がHTMLであり、そしてリダイレクト:検証を使用してルートへの単純なCURLコールは、まだHTML /リダイレクトを返します。 JSONではありません。

でもこのページ:https://laravel.com/docs/5.2/requests#retrieving-input状態:JSON入力を取得

がアプリケーションにJSONリクエストを送信する場合

は、あなたがたContent限り、インプットメソッドを介して JSONデータにアクセスすることが可能値タイプヘッダが の場合、要求はapplication/jsonに適切に設定されます。

私たちは何を欠席しましたか?解決策は何ですか?

答えて

1

また、次のヘッダーを必要とするように見える:

したがって
"X-Requested-With: XMLHttpRequest" 

curl -X POST -H "Content-Type: application/json" 
-H "X-Requested-With: XMLHttpRequest" 
-H "Cache-Control: no-cache" 
-d '{}' "http://yours.com/user/register" 

そして今$this->validate(...)は適切にJSONレスポンスを返しています。

関連する問題