
あきぞらです。
Laravelの開発を行っているとき、AjaxでPOST送信をしたいときがあります。
そのとき、LaravelではCSRFトークンというものを追加する必要があります。
今回はその方法について紹介していきます。
なお、今回の方法は公式にも記載があります。そちらも参照ください。
CSRFトークンを取得する
Laravelは以下のようにCSRFトークンを発行できます。
metaタグにその値を保存しておきます。
app.blade.phpなどに書いておくと良いと思います。
<meta name="csrf-token" content="{{ csrf_token() }}">
ajax通信時のヘッダーにトークンを含める
通信時のheadersに、X-CSRF-TOKENとして含めて送信してあげます。
const postData = {
'test': 'akizora'
};
$.ajax({
type: "POST",
url: requestUrl,
data: JSON.stringify(postData),
contentType: 'application/json',
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content'),
}
}).done(function( data ) {
console.log('done');
}).fail(function(){
console.log('fail');
});
})
逆に含めないと419エラーになったりするので、忘れずに実装していきましょう!