Hello,
voilà j'ai fait un petit script en JS qui utilise l'objet XMLHTTPRequest. En fonction d'une action sur une page je vais charger tel ou tel fichier sur la page en utilisant cet objet.
Mon problème est simple mais je n'ai toujours past trouvé la solution qui est forcément évidente puisque tout le monde faisant ceci est confronté à ce problème.
Enfin bref, le souci c'est que le texte qui est retourné par mon objet XMLHTTPRequest n'est pas propre : l'encodage des caractère latin ne marche pas. Faut il ajouter un "setRequestHeader"? Et si oui lequel.
Par exemple si mon objet XMLHTTPRequest renvoi le mot "passé" alors il affichera "pass�".
Le code JS :
getXHR : pour configurer l'objet en fonction du navigateur :
Code :
- function getXhr()
- {
- if(window.XMLHttpRequest) // Firefox & other browser
- xhr = new XMLHttpRequest();
- else if(window.ActiveXObject)
- { // Internet Explorer
- try
- {
- xhr = new ActiveXObject("Msxml2.XMLHTTP" );
- }
- catch (e)
- {
- xhr = new ActiveXObject("Microsoft.XMLHTTP" );
- }
- }
- else
- { // XMLHttpRequest not supported by the browser
- alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..." );
- xhr = false;
- }
- }
|
Et voici ma fonction qui utilise cet objet
Code :
- var ie=document.all;
- var other=document.getElementById&&!document.all;
- var divName = 'Nomdemadiv';
- //numStep -> contient un numéro vu que j'utilise x div ayant pour nom divName+un numéro
- //File -> le fichier dans lequel on va chercher le texte
- //Param -> des paramètre que l'ont peut donner au fichier (file)
- function go( numStep, file, param )
- {
- //Initialisation of the XMLHttpRequest Object
- getXhr() ;
- // We setup what we do when we will have the answer
- xhr.onreadystatechange = function()
- {
- // If we have receive the data and if the server is ok then
- if(xhr.readyState == 4 && xhr.status == 200)
- {
- // We put the text receive in the div
- if ( ie )
- {
- document.all[ divName+ numStep ].innerHTML = xhr.responseText ;
- }
- else if ( other )
- {
- document.getElementById( divName + numStep ).innerHTML = xhr.responseText ;
- }
- }
- }
- xhr.open('GET',file+param,true);
- xhr.send(null);
- }
|
Message édité par Spir le 19-05-2006 à 16:11:45