0

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リクエストヘッダーが適切な部分である必要があることを理解しているので、それが何か関係があるかどうかを理解しようとしていますか?

4

1 に答える 1

0

接続でcsrf.jsを読むと、ヘッダーがX-CSRF-Tokenであることがわかります。

于 2014-08-12T11:42:21.873 に答える