jquery - jquery ajaxがproccessData = falseのフォームデータを投稿すると、csrf_tokenのDjango応答403が拒否されました

原文 jquery ajax django

formdata = new FormData($form);
case ("filesystem"):
            $.ajax({
                type:"POST",
                url:$form.attr('action'),
                xhr: xhr_provider,
                data: formdata,
                processData: false,
                contentType:false
            })
            .fail(function(Response){alert(Response.responseText)})
            .done(function(response){
                alert("111");
                if (response.has_errors){
                    render_errors($form, response);
               } else {
                $form.closest(".modal").modal("hide");
               }
              });
            alert("12345");
            break;


formdataを含むファイルをDjangoに送信しようとすると、2つの問題が発生します。
他のすべての提案どおりにprocessData: falseおよびcontentType:falseを設定すると、DjangoはこのPOSTを403エラーで拒否します。

processDatacontentTypefalseに設定するこれらの2行をコメント化すると、JqueryはUncaught TypeError: Illegal invocationをスローします。これは、別の一般的な質問であり、解決策はset processData: falsecontentType:falseです。一方、ファイルを含むフォームデータはDjangoに正常に送信され、エラーなく処理されました。

それで私は混乱しました、ファイル付きのフォームデータをDjangoに送信するにはどうすればよいですか
答え
views.pyでは、403を防ぐために、このデコレータを関数に配置してpostを処理する必要があります。

from django.views.decorators.csrf import csrf_exempt

@csrf_exempt
def your_function(request):
    # your logic
関連記事

jquery - aws s3に直接アップロードする方法に関するHerokuのチュートリアルを実行した後、ActionDispatch::Http::UploadedFileを文字列にキャストできません

jquery - JQuery上または下にスクロールしながらdivのサイズを変更する方法

jquery - jQueryで正規表現を使用して各関数を使用する

c# - JqueryからWCF Restful Servicesを呼び出す

javascript - JavaScript関数は一度に6つのIDで実行されます(6回の呼び出し後に戻りますか?)

javascript - Ajax呼び出しを使用してMVCのreturn viewメソッドでJSONデータを返す方法

jquery - jQuery日付フォーマット

javascript - 重いjsウィジェットをロードすると、ブラウザが応答を停止する

javascript - id / classを使用して要素を他の要素のそばに配置するにはどうすればよいですか?

javascript - jQuery / JavaScriptを使用してラジオボタン値の合計を見つける方法は?