1
我遇到了下面的問題,使用JQuery表單驗證和模態內的Django,即使我將csrf標記包含在HTML模板中。如果我提交表單而未使用JQuery進行驗證,則工作正常。Django csrf失敗,jQuery驗證
Forbidden (403)
CSRF verification failed. Request aborted.
在服務器端我使用Django表單驗證,沒有什麼特別的。
預先感謝您:)
這裏是我的代碼:
HTML
<form class="form-inline" id="add-subtitle-modal" action="/add_subtitle/" role="form" method="post" enctype="multipart/form-data">
{% csrf_token %}
<div class="form-group">
{{object.description}}
</div>
...
<button class="btn btn-danger" type="submit">save</button>
JS
$('#add-subtitle-modal').validate({
rules: {
...
}
etc
submitHandler: function(form) {
var $form = $(form);
var $inputs = $form.find("input, select, button, textarea");
$inputs.prop("disabled", true);
//let the backend to manage submiting
$form.submit();
}
對不起。我盲目地認爲有一個阿賈克斯參與,我的壞。關於你的問題,你可以檢查,如果csrf標記與所有POST輸入一起發送? – mariodev
我該怎麼做?因爲服務器禁止它,所以我不能打印request.body。在視圖中呈現它的csrf標記。 :( – jabez
你可以簡單地打開chrome dev控制檯,看看發送了什麼數據.. – mariodev