Comment faire pour télécharger un fichier à l'aide d'Ajax sur le POST?

Je sais, les sujets ne manquent pas sur ce sujet, mais garder avec moi. Je voudrais télécharger un fichier vers le serveur à l'aide d'Ajax ou d'un équivalent.

# html
<form method="post" id="Form" enctype="multipart/form-data">
  {% csrf_token %} # django security
  <input id="image_file" type="file" name="image_file">
  <input type="submit" value="submit">
</form>

# javascript
$(document).on('submit', '#Form', function(e){
  e.preventDefault();

  var form_data = new FormData();
  form_data.append('file', $('#image_file').get(0).files);

  $.ajax({
      type:'POST',
      url:'my_url',
      processData: false,
      contentType: false,
      data:{
          logo:form_data,
          csrfmiddlewaretoken:$('input[name=csrfmiddlewaretoken]').val(), # django security
      },
  });
});

# views.py (server side)
def myFunction(request):
    if request.method == 'POST':
        image_file = request.FILES
        ...
...

Je pense qu'il y a un problème avec la façon dont je l'ai configuré la fonction ajax depuis le mode débogage, toutes les données sont renvoyées à l'exception de la logo.

Je fais quelque chose de mal?

OriginalL'auteur Hiroyuki Nuri | 2017-06-22