私のコントローラーは js GET リクエストに応答しており、私のファイルでは、ユーザーのブラウザーの生成されたブラウザー データをjs.erb
報告しています。Fingerprint2
データ文字列が大きいため、これは POST 要求で行われるためbeforeSend
、Authenticity Token を追加するメソッドを挿入しました。
ただし、これは で拒否されActionController::InvalidAuthenticityToken - ActionController::InvalidAuthenticityToken
ます。私がチェックすると、成功した GET リクエストのヘッダーは次のようになります。
X-CSRF-Token:hl/TgkY7k0yBG03KX9IBrsDhk2K4tUUh8JTooT7A0yYZ0l53p8lTt0F3dZvRwyS3bIkbbkuTdElP2KisozjXjw==
js コードは次のようになります。
(new Fingerprint2).get(function(fingerprint, components) {
return $.ajax({
url: "/user_browser",
type: "post",
beforeSend: function(xhr) {
xhr.setRequestHeader('X-CSRF-Token',
$('meta[name="csrf-token"]').attr('content'))
},
data: {
some_id: '123',
components: JSON.stringify(components),
fingerprint: fingerprint
},
dataType: "json"
}).success(function(data) {});
});