Je viens de tomber sur le même problème, et je pense que c'est dû au fait que XHR les uploads de fichier ne sont pas pris en charge dans IE (voire 9). Voici ce que je crois qui se passe, et ma solution:
Depuis Safari 5+, Firefox 4+, Chrome et soutien XHR téléchargement de fichiers, la fileupload plugin peut transférer les fichiers vraiment de manière asynchrone, ce qui permet un pur texte de la réponse du serveur. Ce texte pur réponse est disponible via data.result
dans la done
gestionnaire d'événements, et peut être utilisé facilement.
Dans IE, cependant, le transfert de fichiers se fait par une régénération complète de la page dans un iframe masqué, provoquant data.result
dans la done
gestionnaire à plein document
de l'objet, avec le texte de la réponse enveloppé profondément à l'intérieur, <html><body><iframe><pre>
tags.
Non seulement cela fait-il une douleur à obtenir les données dans IE, il fait le chemin, vous obtenez les données entre les différents navigateurs.
Ma solution:
J'ai mis l' forceIframeTransport
option à true, ce qui permet à tous les navigateurs de transférer des fichiers avec un iframe masqué, comme IE. C'est dommage de passer à côté de XHR les uploads de fichier, mais cela donne au moins le même genre de réponse que dans tous les navigateurs. Alors, dans mon done
gestionnaire, j'ai extrait le résultat de l' document
objet comme ceci:
var result = $( 'pre', data.result ).text();
Dans votre cas, je pense que le code devrait ressembler à quelque chose comme ceci:
$('input#fileupload').fileupload({
forceIframeTransport: true,
url: '/upload',
done: function ( e, data ) {
var result = $( 'pre', data.result ).text();
if( result != null && $.trim( result ) != '' )
$( 'a#attachment' ).html( result );
}
...
Également important à noter ici est que le Type de Contenu de la réponse de mon serveur est 'text/plain". Comme vous l'avez remarqué, c'est à dire, parfois, invite l'utilisateur à enregistrer ou d'ouvrir une réponse json.
Voici quelques liens qui s'avère utile lors de la résolution du problème:
https://github.com/blueimp/jQuery-File-Upload/wiki/Browser-support (voir "XMLHttpRequest" de la section en bas)
https://github.com/blueimp/jQuery-File-Upload/wiki/Options (voir "forceIframeTransport' environ 1/3 de la manière vers le bas)
Nous espérons que cette aide!