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