téléchargement blueimp jquery - "fait", "complet" callbacks ne fonctionne pas pour IE 9
Je suis en utilisant Blueimp Jquery File Upload plugin pour télécharger des fichiers de manière asynchrone. Il fonctionne bien dans la plupart des autres navigateurs (avec quelques problèmes mineurs) - sur IE, je vois cette question, le "fait", "stop", "toujours", "complet" et quelques autres rappels d'événement ne sont pas d'être invoqué.
Pendant le débogage, j'ai ajouté de la console.journaux dans le "faire", "échec", "toujours", et a ajouté "complet" méthode de la requête ajax dans le _onSend fonction (en jquery.fileupload.js) - mais aucun d'entre eux semblent se invoquée dans IE.
_onSend: function (e, data) {
var that = this,
jqXHR,
slot,
pipe,
options = that._getAJAXSettings(data),
send = function (resolve, args) {
that._sending += 1;
jqXHR = jqXHR || (
(resolve !== false &&
that._trigger('send', e, options) !== false &&
(that._chunkedUpload(options) || $.ajax(options))) ||
that._getXHRPromise(false, options.context, args)
).complete(function (result, textStatus, jqXHR) {
console.log("complete");
}).done(function (result, textStatus, jqXHR) {
console.log("done", result);
}).fail(function (jqXHR, textStatus, errorThrown) {
console.log("fail", result);
}).always(function (a1, a2, a3) {
console.log("done", result);
}
});
return jqXHR;
};
[plugin code taillés pour des raisons de lisibilité]
Je comprends que, dans IE 9, jquery.iframe-transport.js utilisé pour l'upload de fichier (XHR les uploads de fichier ne sont pas pris en charge dans IE).
Je ne suis pas sûr de savoir comment je doit faire pour les fixer/le débogage de ce problème.
Merci!
source d'informationauteur tanushree
Vous devez vous connecter pour publier un commentaire.
Le fait événement est déclenché si le type de contenu de la réponse est "text/html" ou "text/plain" (au lieu de l'application/json) lorsque json est retourné par le serveur. Cela s'applique uniquement pour les navigateurs qui ne prennent pas en charge XHR de téléchargement de fichiers (tels que IE9) et où la blueimp plugin est à l'aide d'une IFrame de transport à la place.
Infos sous "la Négociation de Contenu" dans le plugin de la documentation:
https://github.com/blueimp/jQuery-File-Upload/wiki/Setup
Pour l'enregistrement, j'ai rencontré ce problème lors du téléchargement direct pour S3, maintenant que leurs CORS fonction permet pour cela.
La solution était de mettre en success_action_status de '200', et puis le Fait de l'événement a été déclenché correctement.
Au cas où quelqu'un est toujours à avoir ce problème avec le téléchargement direct pour S3 la solution est d'ajouter un success_action_status champ avec la valeur de "201". Assurez-vous d'inclure cela dans le cadre de la politique de données ainsi depuis qu'ils ont de match.
Apparemment, lors de la réception de la télécharger à partir de IE9 S3 retourne une chaîne vide. Pour obtenir de renvoyer du XML, le fichier uploader besoins, vous avez à dire à ce qu'il revienne à un état de 201.