csrf-token は、アプリケーション レイアウトでメタ タグとしてレンダリングされます
<meta content="authenticity_token" name="csrf-param">
<meta content="28c5136f4ef175c620ead78cc6d9589b98be0b78" name="csrf-token">
csrf-token メタ タグのコンテンツを構成オブジェクトに書き込み、jquery で投稿するたびに ajaxPrefilter を使用して追加します。
$.ajaxPrefilter(function(options, originalOptions, jqXHR){
if (options['type'].toLowerCase() === "post") {
console.log("token got called" + configs.csrf_token);
jqXHR.setRequestHeader('X-CSRFToken', configs.csrf_token);
}
});
ただし、以下のように投稿すると
$.post( "/images/external/url", { url: url, 'csrf-param': configs.csrf_token})
.done(function( data ) {
console.log( "Data returned: " + data );
});
不正な認証トークン エラーで 403 が返されます。
投稿のcsrf-paramは、X-CSRFTokenリクエストヘッダーが適切な部分である必要があることを理解しているので、それが何か関係があるかどうかを理解しようとしていますか?