LaravelでJavaScriptからPostするにはCSRFトークンが必要

PHP
スポンサーリンク

LaravelでJavaScriptからポストした際に出たエラーの整理です。

 

スポンサーリンク

Failed to load resource: the server responded with a status of 500 (Internal Server Error)

以下のエラーが出たときは、CSRFトークンが付いていないことが原因です。

Failed to load resource: the server responded with a status of 500 (Internal Server Error)

 

 

 

Cross Site Request Forgery protection = クロスサイトリクエストフォージャリ

クロスサイトリクエストフォージェリ(Cross site request forgeries、略記:CSRF、またはXSRF)は、WWW における攻撃手法のひとつである。 具体的な被害としては、掲示板に意図しない書き込みをさせられたり、オンラインショップで買い物をさせられたりするなどが挙げられる。

 

Laravelのログ、laravel.logには以下のように出力されています。

 

対策として以下のようにします。

 

 

ポイントはこれです。

beforeSend: function (xhr) {
return xhr.setRequestHeader('X-CSRF-TOKEN', "{{csrf_token()}}");
},

Failed to load resource: the server responded with a status of 422 (Unprocessable Entity)

以下のエラーが出たときは、Request validationに引っかかっているようです。

Failed to load resource: the server responded with a status of 422 (Unprocessable Entity)

 

 

Laravelのホームディレクトリから

app\Http\Requests

にクラスから、rules()を確認します。

 

エラーが出れば、常にログを確認する。

 

最後まで読んでいただきありがとうござました。
この記事が気に入っていただけたらシェアしてくれると嬉しいです。

コメント