[résolu] xmlhttprequest et charset

HTML5, CSS3, Javascript, support des mobiles... Que penser de votre site ? Vous manquez d'informations pour la construction d'un site qui puisse s'afficher correctement partout ? C'est un problème simple, un peu complexe ? Venez ici !
Bobe
Iguane
Messages : 742
Inscription : 28 juil. 2003, 21:29

[résolu] xmlhttprequest et charset

Message par Bobe »

Salut tout le monde,

J’ai un petit soucis avec firefox et xmlhttprequest.

j’envoie des données en xml via la méthode POST et j’ajoute donc l’entête content-type de la façon suivante :

Code : Tout sélectionner

...
xhr.open('POST', postdata_url, false);
xhr.setRequestHeader('Content-Type', 'application/xml; charset="UTF-8"');
xhr.send(doc);
...
Problème : À l’arrivée, J’obtiens l’entête content-type suivant -> application/xml; charset=ISO-8859-1

Je ne m’explique pas ce phénomène.
Dernière modification par Bobe le 04 sept. 2008, 17:05, modifié 1 fois.
« La vie d’un geek est un combat perpétuel contre l’imperfection »
Bobe
Iguane
Messages : 742
Inscription : 28 juil. 2003, 21:29

Message par Bobe »

De plus en plus bizzare.
Si je fais mon appel en GET, je reçois bien l’entête 'application/xml; charset="UTF-8' de l’autre côté…
« La vie d’un geek est un combat perpétuel contre l’imperfection »
Bobe
Iguane
Messages : 742
Inscription : 28 juil. 2003, 21:29

Message par Bobe »

C'est le bug 431701, corrigé sur le tronc.
« La vie d’un geek est un combat perpétuel contre l’imperfection »
Bobe
Iguane
Messages : 742
Inscription : 28 juil. 2003, 21:29

Message par Bobe »

Le bug est corrigé aussi dans firefox 3.0.2 en préparation.

Deux wordkaround sinon :

1°/ Vérifier côté serveur le contenu de l’entête "content-type" envoyé par le navigateur. Et si on trouve la chaîne ";charset=ISO-8859-1" (prévoir présence ou non des guillemets autour du nom du charset et la casse de ISO), on fait la conversation pour avoir nos données en UTF-8

Problème: Le navigateur aura converti les caractères non présents dans le charset ISO-8859-1 en entités numériques qu’il faudra donc aussi traiter…

2°/ ne pas passer par createDocument() pour créer son script côté javascript mais faire:

Code : Tout sélectionner

var domDocument = new DOMParser().parseFromString("<?xml version='1.0' encoding='UTF-8'?><dummy/>","application/xml");
voir : https://bugzilla.mozilla.org/show_bug.cgi?id=407213#c8

Bon, ça implique de songer à la compatibilité avec les autres navigateurs si besoin, et c’est sensiblement plus lent que createDocument()

Heureusement que ce bug très génant pour les applications ajax (je vous dis pas comment ça couine dans les commentaires bugzilla ^^) est corrigé sur le tronc ET sur la branche qui donnera la 3.0.2 dans les prochaines semaines.

EDIT: je mets ce sujet en [résolu]. Merci de votre attention ^^
« La vie d’un geek est un combat perpétuel contre l’imperfection »
lpgc
Lézard à collerette
Messages : 259
Inscription : 16 juil. 2006, 01:02

Message par lpgc »

perso ... j'ai un autre problème sûrement du même style ...

je viens de passer en version Gecko/2008102920 Firefox/3.0.4

et visiblement ce code ne fonctionne plus :

Code : Tout sélectionner

      xmlhttp=new XMLHttpRequest()
      xmlhttp.onreadystatechange = state_Change;
      xmlhttp.open("POST",url,true)
      xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
      alert(	"1 XMLDoc1 :"+DataToSend)
      xmlhttp.send(DataToSend);
Une idée ? :D

cela fonctionnait très bien avant ! sous IE 7 et Firefox 2
le problème à l'air de se situer sur la Form qui n'est pas reçue pas le serveur ( page.asp )

Code : Tout sélectionner

	response.write "<p>CMD : çà ne marche pas" & Request.Form
OU pas envoyée ? en tout cas problème de compatibilité !

:shock: en local avec un serveur IIS et asp çà fonctionne


Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4
lpgc
Lézard à collerette
Messages : 259
Inscription : 16 juil. 2006, 01:02

Message par lpgc »

quelques tests ... c'est bizarre :?

http://support.mozilla.com/tiki-view_fo ... &forumId=1

sûrement mon code :oops:



Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4
lpgc
Lézard à collerette
Messages : 259
Inscription : 16 juil. 2006, 01:02

Message par lpgc »

drôle de problème ... vraiment une combinaison de facteurs ... pas de bol quoi :?
Veuillez noter que c'est un probleme de lecture de script avec Chiliasp (qui est utiliser sur nos serveurs). Je suis desolé, mais nous ne pouvons rien y faire a ce propos. Nos techniciens vous propose d'utilisez PHP au lieu de ASP.
En bref il faut les facteurs :

-1 Firefox 3
-2 Ajax POST application/x-www-form-urlencoded
-3 Chiliasp

Finalement résolu en utilisant un multipart/form-data :roll:




Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 4 invités