Requêtes Ajax et Internet Explorer
Par Hadrien le vendredi, 4 janvier 2008, 12:05 - IE SUX - Lien permanent -
J'inaugure une nouvelle catégorie "IE SUX" dans laquelle j'exprimerais mes coup de gueules envers les malfonctions de cette bouse infâme qu'est Internet Explorer. Aujourd'hui, IE et les requêtes Ajax.
Un bug sur Over-blog : impossible de mettre un caractère accentué à un nom de catégorie sous IE. Celui-ci envoie systématiquement le string en ISO au lieu d'UTF-8.
Après moulte fouilles et tentatives de debug, j'ai finalement trouvé la cause du problème. Il s'agit en fait d'un bug de l'objet ActiveX XMLHTTP de IE (6 et 7). Lorsque l'on envoie des données via une requête Ajax en Get, IE se fait un malin plaisir à envoyer la donnée en tant que UTF-8, mais en réalité en ISO. D'où la réception d'un caractère foireux. Par contre, si les données sont envoyées en Post, aucun problème, c'est de l'UTF-8 qu'il envoit.
Conclusion, envoyez toute vos requêtes Ajax en Post. Merci Microsoft.
lu 825 fois
Commentaires
Sans commentaires.
Je suis déjà très bien emmerdé pour la balise button http://dascritch.net/blog.php/post/...
Question conne : t'as pensé à retomber en ASCII 7bits avec la fonction .escape() ?
Non, mais ça aurait pu aider en effet. Dans mon cas par contre, je peux pas car j'ai prévu un formulaire standard pour ceux qui ont désactivé javascript et c'est le même contrôleur qui est appelé. Il aurait donc fallu rajouter un paramètre pour spécifier s'il faut descaper ou pas coté php.
arf... j'aurais dû y penser que tu fais une dégradation élégante. Mais rien ne t'empêche d'utiliser un paramètre dans ton ajax. Genre
req=req+'&esc=ape'
Tu seras vengé : http://annevankesteren.nl/2008/01/a...