[Rails]CSRF tokenでエラー対応方法
CSRF tokenでエラー
Can't verify CSRF token authenticity.
エラー対応方法
①CSRF tokenをHTMLソースコードに追加する。
<!DOCTYPE html>
<html>
<head>
<title> タイトル </title>
<%= csrf_meta_tags %> <<==これを追加する。
<%= csp_meta_tag %>
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
<%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %>
</head>
②ajaxPrefilterにcsrf-tokenを格納する。
$.ajaxPrefilter(function(options, originalOptions, jqXHR) {
var token;
if (!options.crossDomain) {
token = $('meta[name="csrf-token"]').attr('content');
if (token) {
return jqXHR.setRequestHeader('X-CSRF-Token', token);
}
}
});
③headersにcsrf-tokenを格納する。
$(function() {
$.ajax({
type: 'PATCH',
url: '/comments/' + commentId,
data: {
comment: {
body: body
},
},
headers: {
'X-CSRF-Token' : $('meta[name="csrf-token"]').attr('content')
},
dataType: 'json',
}).done(function (data) {
}).fail(function () {
});
})
});