Railsのajaxでメソッド実行しようとすると ActionController::InvalidAuthenticityToken のエラーがでてきた。原因は?
Rails5 ajax で ActionController::InvalidAuthenticityToken
以下のajaxを実行すると ActionController::InvalidAuthenticityToken のエラーが出力される。
javascript
$.ajax({
type:"post",
url:"[URL]",
dataType: "json",
}).then(
function(data) { alert('success!!'); },
function(data) { alert('error!!'); }
);
内容をみるとInvalidAuthenticityTokenと、Tokenがおかしいようなことが書かれていますね。
対応としてはTokenを設定してあげればOKです。
javascript
$.ajax({
type:"post",
url:"[URL]",
dataType: "json",
beforeSend: function(xhr) {
xhr.setRequestHeader("X-CSRF-Token", $('meta[name="csrf-token"]').attr('content'))
},
}).then(
function(data) { alert('success!!'); },
function(data) { alert('error!!'); }
);
X-CSRF-Tokenを設定してajaxを実行するとエラーがなくなります!
POSTデータのやり取り時には注意してみておきましょう。
何か参考になれば幸いです(*^^*)