2013-10-27 12 views
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(); 
     } 
+0

Извините, приятель. Я вслепую предполагал, что был аякс, мой плохой. Что касается вашей проблемы, можете ли вы проверить, если токен csrf отправляется вместе со всем входом POST? – mariodev

+0

Как я могу это сделать? Потому что я не могу распечатать request.body, поскольку сервер запрещает его. В представлении маркер csrf он отображается. :( – jabez

+0

Вы можете просто открыть консоль chrome dev и посмотреть, какие данные отправлены .. – mariodev

ответ

1

Это была моя ошибка. Когда я устанавливаю входные данные как недопустимые перед отправкой, csrf также был отключен. Поэтому я думаю, что он не был отправлен на сервер. Я думаю, что это было проблемой, поскольку после того, как я изменил, какое поле становится отключенным, он работает.

Смежные вопросы