PHP/Ajax : vous avez un message \"Erreur sur la page\" sur internet explorer (IE) alors que ça fonctionne sur Firefox ?
voici un remède efficace testé pour vous !
j'ai eu le meme problème et après 2 heures de recherche et des touffes de cheveux arrachées voici ma conclusion :
1. coté serveur (php ou autre) le mime type
ET le charset doivent être précisés !
car dans le cas d'un charset vide, IE fait une erreur lorsqu'il accède à la réponse de la requete Ajax (responseText) alors que firefox est plus tolérant et laisse passer.
2. noter que sur sur un serveur Apache, les paramètres "default charset" dans les fichiers de config Apache et php.ini ne fonctionnent pas de la même façon pour un site en http et https (ça marche en http mais pas en https chez moi) ...
3. pour tester et voir passer les déclarations d'entete entre le serveur et le client (ici sur linux) :
wget -d "
http://monsite/mon_script_ajax.php"
si vous voyez passer (utf8 ou isoxxx , peu importe) :
Content-Type: text/html; charset=UTF-8
c'est bon ! par contre si vous voyez :
Content-Type: text/html; charset=0c'est pas bon ! ;o)
4. il suffit donc de corriger sur votre scirpt php, en commençant avec par exemple :
<?
header("Cache-Control: no-cache");
header("Content-type: text/html; charset=UTF-8" );
(le no-cache est utile si vous fait des échanges Ajax en GET , mais je vous recommande de faire du POST ça évite les pbs de cache et surtout ça laisse moins de trace sur les proxy et les serveurs).
Merci de me dire si ce post vous a été utile en utilisant le formulaire ci-dessous :
7 407 clics - Créé le 18/03/2009 par Tito - Modifié le 28/05/2009