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