jquery ajax forme rappel de succès ne pas être appelé

Je suis en train de télécharger un fichier à l'aide de "AJAX", les données de processus dans le fichier et ensuite de retour à certaines de ces données à l'INTERFACE utilisateur afin que je puisse mettre à jour dynamiquement à l'écran.

J'utilise le JQuery, Ajax Formulaire de Plugin, jquery.form.js trouvé à http://jquery.malsup.com/form/ pour le javascript et l'utilisation de Django sur l'extrémité arrière. Le formulaire est soumis et le traitement en back-end se passe sans problème, mais lors de la réception d'une réponse du serveur, mon navigateur Firefox me demande de télécharger/ouvrir un fichier de type "application/json". Le fichier a le contenu json que j'ai essayé de l'envoyer au navigateur.

Je ne pense pas que ce soit un problème avec la façon dont je suis l'envoi du json que j'ai un modulaire json_wrapper() fonction que j'utilise dans plusieurs endroits de cette même application.

Voici ce que mon apparence de la forme après Django modèles sont appliqués:

<form method="POST" enctype="multipart/form-data" action="/test_suites/active/upload_results/805/">
  <p>
     <label for="id_resultfile">Upload File:</label> 
     <input type="file" id="id_resultfile" name="resultfile">
  </p>  
</form>

Vous ne verrez pas de boutons submit, parce que je vais appeler présenter avec un bouton d'autre où et je suis en utilisant ajaxSubmit() de la jquery.form.js plugin.

Ici, c'est le contrôle de code javascript:

function upload_results($dialog_box){
    $form = $dialog_box.find("form");
    var options = {
            type: "POST",
            success: function(data){
                alert("Hello!!");
            },
            dataType: "json",
            error: function(){
                console.log("errors");

            },
            beforeSubmit: function(formData, jqForm, options){
                    console.log(formData, jqForm, options);
                },
        }
    $form.submit(function(){
        $(this).ajaxSubmit(options);
        return false;
    });
    $form.ajaxSubmit(options);
}

Comme vous pouvez le voir, j'ai pris de l'désespéré de voir le succès de rappel de la fonction de travail et tout simplement avoir un message d'alerte créé sur la réussite. Cependant, nous n'avons jamais atteindre cet appel. Aussi, le error fonction n'est pas appelée et le beforeSubmit fonction est exécutée.

Le fichier que je serai de retour a le contenu suivant:

{"count": 18, "failed": 0, "completed": 18, "success": true, "trasaction_id": "SQEID0.231"}

- Je utiliser la "réussite" ici pour désigner de savoir si ou non le serveur a été en mesure d'exécuter le poste de commande de manière adéquate. Si elle n'a pas le résultat devrait ressembler à quelque chose comme:

{"success": false, "message":"<error_message>"}

Votre temps et votre aide est grandement appréciée. J'ai passé quelques jours maintenant et je serais ravi de passer.

source d'informationauteur Michael Merchant