Aller au contenu

XMLHttpRequest, POST et ISO-8859-1


enroc

Sujets conseillés

Bonjour,

voilà, j'utilise le fameux XMLHttpRequest, et c'est super ! Mais ... j'ai des problèmes d'encodage de caractère :huh:

Voici les 2 cas de figures que j'ai :

en utilisant XMLHttpRequest pour poster le formulaire

* envoi le contenu des champs en utf8

* récupère (responseText) de l'utf8 (je crois) alors que le contenu est de l'iso-8859 (et le dit dans l'entête)

en utilisant le formulaire sans javascript: tout ce passe bien en iso-8859-1

Donc :

1. Il faut que je détecte si le formulaire est posté via javascript ou non, pour faire un utf8_decode(), ce que j'aimerai éviter.

2. je ne sais pas comment faire pour afficher correctement le responseText.

d'où :

1. Puis-je poster en javascript en iso-8859-1 ? Comment ?

2. Pourquoi ai-je des problèmes d'affichage en récupérant responseText, qui est de l'iso-8859, en l'affichant ?

:?:

Voilà, si vous avez compris et que vous avez des idées ... :rolleyes:

Voici le javascript utilisé :

function saveFile()
{
request = new XMLHttpRequest();
request.open("POST", location.pathname);
request.onload = printResult;

/* Envoi de l'utf8 ? */
request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
var _fileContent = (document.getElementById('fileContent').value);
var _mtime = document.getElementById('mtime').value;
var _action = "editFile";
request.send("ajax=true&fileContent="+_fileContent+"&mtime="+_mtime+"&action="+_action);
}
function printResult()
{
if(document.getElementById("log")){
 document.getElementById("log").parentNode.removeChild(document.getElementById("log").parentNode);
}
var _result = document.createElement("div");

/* reçoit de l'utf8 ? */
_result.innerHTML = request.responseText;
document.body.appendChild(_result);
//document.body.innerHTML = request.responseText;
}

Lien vers le commentaire
Partager sur d’autres sites

Hop, la réponse était dans la question (qui était : pourquoi le fichier qui récupère le formulaire (action="toto.php") ne récupère pas tout simplement de l'iso-8859-1 quand le formulaire est posté en javascript)

request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

<{POST_SNAPBACK}>

En effet c'est posté en x-www-form-urlencoded, il faut donc décoder !

Faut bien tout lire avant de poser une question :-D

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...