1

次のシナリオを考えてみましょう: ページは で読み込まれ{% csrf_token %}ます<form>。その後、このフォームの送信 (非表示の csrf_token を含む) は、ページをリロードせずに ajax (投稿) を使用して実行されます。
サーバー側では、トークンをクライアントに送り返し、にあるトークンを置き換える必要があることを理解してい ます<form>.
token と send with response 私は django.middleware.csrf.get_token() を使用することを考えていますが、コードではクライアントから送信されたものを返すだけのようです。
get_token() は最新のものを返しますか?

4

1 に答える 1

1

を使用して、js で csrf トークンを取得します。

var csrf_token = $(this).data('csrf');  // $(this) refers to your form in your html

それで:

$('#yoursubmitbutton').click(function() {
$.ajax({
            url: url,
            type: "POST",
            dataType: "json",
            data: { csrfmiddlewaretoken: csrf_token, other_data: other_data },
            success: function(data) {
                if (data['success']=='true') {
                    // Handles success
                } else {
                    // Handles failure failed.
                }

                // Any logic you want
            },
            error: function() {
                                   // Error handling
            }
        }) 
});  // click event 
于 2013-01-17T11:29:32.513 に答える