2016-10-22 16 views
0

LPology/Simple-Ajax-Uploaderにcsrfトークンを挿入するにはどうすればよいですか?ファイルアップロード用のcsrfトークンを挿入してください

私はcustomHeadersで試しましたが、成功しませんでした。

https://github.com/LPology/Simple-Ajax-Uploader/tree/master/examples/basic_exampleは、私が代わりにバックエンドではDjango 1.9を使用します。 はあるが、$("input[name='csrfmiddlewaretoken']").val()qEN1kNfYYkAasfqBn3AigICJmz4MIlei

var uploader = new ss.SimpleUpload({ 
     button: btn, 
     url: 'file_upload/', 
     name: 'uploadfile', 
     customHeaders: { 
      'X-CSRF-TOKEN': $("input[name='csrfmiddlewaretoken']").val() 
     }, 
     multipart: true, 
     hoverClass: 'hover', 
     focusClass: 'focus', 
     responseType: 'json', 
     startXHR: function() { 
      progressOuter.style.display = 'block'; // make progress bar visible 
      this.setProgressBar(progressBar); 
     }, 
     onSubmit: function() { 
      msgBox.innerHTML = ''; // empty the message box 
      btn.innerHTML = 'Uploading...'; // change button text to "Uploading..." 
      }, 
     onComplete: function(filename, response) { 
      btn.innerHTML = 'Choose Another File'; 
      progressOuter.style.display = 'none'; // hide progress bar when upload is completed 
      if (!response) { 
       msgBox.innerHTML = 'Unable to upload file'; 
       return; 
      } 
      if (response.success === true) { 
       msgBox.innerHTML = '<strong>' + escapeTags(filename) + '</strong>' + ' successfully uploaded.'; 
      } else { 
       if (response.msg) { 
        msgBox.innerHTML = escapeTags(response.msg); 
       } else { 
        msgBox.innerHTML = 'An error occurred and the upload failed.'; 
       } 
      } 
      }, 
     onError: function() { 
      progressOuter.style.display = 'none'; 
      msgBox.innerHTML = 'Unable to upload file'; 
      } 
    }); 
}; 

全例を示します。ページのマークアップのための<input type='hidden' name='csrfmiddlewaretoken' value='7CzH2kocMFDiGhSBlBY5OelS6oSND1Iw' />を生成{% csrf_token %}

<form>{% csrf_token %} 
... 
</form> 

Dgangoタグ:私のフロントエンド形式は次のようになります。

答えて

2

X-CSRF-TOKENの代わりにX-CSRFTokenと呼ばれるヘッダーがあります。

それでも解決しない場合は、非表示の入力ではなくcsrftokenのCookieからトークンの値を取得してみてください。

csrfヘッダーを設定する代わりに、プロパティを使用してプラグインで追加のパラメーターを渡すことがサポートされているように、csrfmiddlewaretokenポストパラメーター内にトークンを送信できます。

+0

あなたが正しいです、正しいプロパティ名は 'X-CSRFToken'です。どうもありがとうございました。 – trex

関連する問題