3 votes

jquery file upload dataType script problème IE

J'ai toujours des difficultés à utiliser le plugin jquery fileupload, uniquement sur IE.

Le javascript est quelque chose comme ceci :

$('input#fileupload').fileupload({
    url: '/upload_attachment.js',
    dataType: 'script',
 ................
 ................

$('input#realupload').bind('change', function(e){
   $('#fileupload').fileupload('send', {
    dataType: 'script',
    files: e.target.files || [{name: this.value}],
    fileInput: $(this)
 }); 
 e.preventDefault();       
});

Il s'agit de l'en-tête de la demande :

 Key    Value
 Request    POST /holdings/183400184/upload_attachment HTTP/1.1
 Accept text/html, application/xhtml+xml, */*
 Referer    http://192.168.1.209:3000/holdings/183400184
 Accept-Language    en-NZ
 User-Agent Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)
 Content-Type   multipart/form-data; boundary=---------------------------7dc1d02610132
 Accept-Encoding    gzip, deflate
 Host   192.168.1.209:3000
 Content-Length 196
 Connection Keep-Alive
 Cache-Control  no-cache
 Cookie xxxxxxxxxxxxxxx

Je spécifie que le type de données est : 'script' et je retourne le serveur :

 Key    Value
 Response   HTTP/1.1 200 OK 
 Content-Type   text/javascript; charset=utf-8
 Cache-Control  max-age=0, private, must-revalidate
 X-Ua-Compatible    IE=Edge
 X-Runtime  4.625297
 Server WEBrick/1.3.1 (Ruby/1.9.3/2011-10-30)
 Date   Wed, 25 Jan 2012 02:52:48 GMT
 Content-Length 345
 Connection Keep-Alive
 Set-Cookie ******************

Et le corps de la réponse est :

var li = '<li>';
li += '<img alt="Paperclip" src="/images/paperclip.png?1323904510" /> ';
li += '<a href="stackoverflow.com/XXXXX/183400184/download_attachment/980191034">test.txt</a> <img alt="Cross_16x16" data_url="/XXXXX/183400184/destroy_attachment/980191034" src="/images/cross_16x16.png?1327452770" />';
li += '</li>';
$('ul#attachments').append(li);

Sur chrome, firefox, etc... tout va bien.

Sur IE, il me demande si je veux ouvrir ou enregistrer le fichier update_attachment.js ? ???.

Les autres appels ajax fonctionnent bien, il interprète la réponse javascript correctement, mais il n'y a que l'utilisation de fileupload no.....

éditer :

IE ne passe pas dans l'en-tête de la demande :

  X-Requested-With  XMLHttpRequest

2voto

CLod Points 445

Je pense que cela répond à ma question

forceIframeTransport

Définissez cette option sur true pour forcer les téléchargements par transport iframe, même si le navigateur est capable de télécharger des fichiers XHR. Cela peut être utile pour téléchargements de fichiers intersites, si l'en-tête Access-Control-Allow-Origin ne peut pas être ne peut pas être défini pour le gestionnaire de téléchargement côté serveur, ce qui est nécessaire pour téléchargements de fichiers XHR intersites.

Type: boolean
Default: false

IE ne fait pas de demande XHR...

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X