laravel5.5でajaxでPOST通信する時のCSRFトークン
Laravel5.5にて、ajaxでPOST通信する際にCSRFトークンも送る方法のメモ。
概要
LaravelではデフォルトではPOST通信には全てCSRFトークンをつけてやる必要がある。
ajaxでの通信でも例外ではない。
なので、そのまま何も考えずにajaxを使うとそこで引っかかってしまう。
方法
方法としては(主に)2つ。
- 送信するURLはCSRFトークンの対象外としてやる
- ajax通信の際にもCSRFトークンを送る
もちろん後者の方が安全。
CSRFトークンの追加
HTMLのmetaタグにCSRFトークンをおいてやり、それを取得して送る。
POST送信の_token
パラメータに入れてやるだけでよい。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
公式のドキュメントにも方法は載っているが、これは、Axios HTTPライブラリを使った方法?のよう。
上記でないと上手く動作しなかったが…やり方が悪いのかもしれない。
トークン対象外
一応、トークンの対象外とする方法も。
app/http/Middleware/VerifyCsrfToken.php
内にて指定してやる。
1 2 3 |
|