0

ボタンからAJAXPOSTリクエストを送信した場合。ビューでCSRFトークンを検証する必要がありますか、それともDjangoがPOSTを受け入れるときに自動的に検証しますか?そうでない場合は、自分で手動で検証するにはどうすればよいですか?

また、フォームを作成してリクエストを渡すと、フォームオブジェクトがこの検証を自動的に行うのは正しいですか?

jQuery:

<script>
$(document).ready(function() {  
  $('#button1').click(function(){
    $.post("/", { 
      unique_id : "{{ unique_id }}",
      csrfmiddlewaretoken: '{{ csrf_token }}'
    });
  });
});
</script>
4

1 に答える 1

1

プロジェクトに参加している'django.middleware.csrf.CsrfViewMiddleware',場合は、が自動的に検証されます。これは、ドキュメントにも記載されています。MIDDLEWARE_CLASSESsettings.pyCsrfViewMiddlewarecsrf_token

HTTP GET、HEAD、OPTIONS、またはTRACEを使用していないすべての着信要求には、CSRF Coo​​kieが存在する必要があり、「csrfmiddlewaretoken」フィールドが存在し、正しい必要があります。そうでない場合、ユーザーは403エラーを受け取ります。

このチェックはCsrfViewMiddlewareによって行われます。

于 2012-12-30T21:06:13.210 に答える