IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

[AJAX] Vista et IE : utilisation de Charset


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 56
    Par défaut [AJAX] Vista et IE : utilisation de Charset
    Bonjour!

    J'ai un soucis de charset avec mon code javascript après avec récupéré une page web sur un serveur distant (ndd différent)

    Mon code fonctionne parfaitement avec Firefox et IE 7 sous WinXP, il fonctionne avec FF sous Vista, mais pas avec IE 7 sous vista.

    En gros il me récup de l'UTF-8 au lieu d'iso.

    J'ai placé une balise meta pour specifier iso, j'ai placé un header php pour spécifier iso, ça marche pas.

    Voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    function makeRequest(method,url,parameters,callback,mode) {
     
    	try {
    	netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
    	} catch (e) {}
     
            if (window.XMLHttpRequest) { // Mozilla, Safari,...
                http_request = new XMLHttpRequest();
                if (http_request.overrideMimeType) {
                    http_request.overrideMimeType('text/html; charset=iso-8859-1');
                }
     
            } else if (window.ActiveXObject) { // IE
               try {
                   http_request = new ActiveXObject("Msxml2.XMLHTTP");
                } catch (e) {
                    try {
                        http_request = new ActiveXObject("Microsoft.XMLHTTP");
                    } catch (e) {}
                }
            }
     
            if (!http_request) {
                alert('Abandon :( Impossible de créer une instance XMLHTTP');
                return false;
            }
    	if(mode==true)
            	http_request.onreadystatechange = function() { callback(http_request); };
    	http_request.open(method, url, mode);
    	if(method=='GET') {
                http_request.send(null);
    	} else {
    	    http_request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=iso-8859-1");
    	    http_request.setRequestHeader("Content-length", parameters.length);
            http_request.send(parameters);
    	}
    	if(mode==false)
    		callback(http_request);
        }
    A savoir que l'encodage est bien sur "iso" dans les options d'IE.

    Est-ce que quelqu'un saurait m'aider s'il vous plait ?

  2. #2
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    Quel est le content-type reconnu par le navigateur (clic droit > ...) de la page contenant ce code JavaScript, et peut-on voir le code du script appelé par ce code ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 56
    Par défaut
    Bonjour,

    Le content type est bien ISO.

    Voici pour le code appelant, déclenché par un bouton

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    function topic()
    {
    //ça c'est la txtbox de l'url de la page qu'on veut
    	var url = document.ajax.url.value;
    	makeRequest('GET', url,'',page,false);
    //ça c'est le hidden box où on met le result après pleins de traitements
    	document.ajax.result.value = "<div>" + final + "</div>";
     
    //ça c'est des trucs en plus
    	if((final != "") && (titre_final != ""))
    	{
    		document.getElementById("chargement").innerHTML = "Chargement terminé!";
    		document.ajax.submit.disabled = false;
    	}
    	else
    	{
    		document.getElementById("chargement").innerHTML = "Echec! V&eacute;rifiez que vous &ecirc;tes bien connect&eacute; et/ou que l'adresse est celle de la premi&egrave;re page.";
    		div1.className = ( div1.className == 'cachediv' ) ? '' : 'cachediv';
    	}
    }
    Merci pour votre aide!

  4. #4
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    Oui, mais le code appelé par XMLHttpRequest ? Tu as les moyens de vérifier l'encodage utilisé pour émettre la requête par ton code ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 56
    Par défaut
    Ce sont des pages de forum phpbb. charset iso aussi, enfin du moins sous XP.

    Tu as les moyens de vérifier l'encodage utilisé pour émettre la requête par ton code ?
    Je ne sais pas si c'est la même question, mais comment faut-il faire ?

    EDIt : je viens de m'installer une machine virtuelle vista et je confirme que

    -L'encodage reçu est mauvais
    -La page en elle même est en ISO
    -La page que je récupère est aussi en ISO

  6. #6
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    Tu as un peu répondu à la question : je cherche à connaître le jeu de caractères utilisé par le navigateur lorsqu'il contacte le serveur via ta fonction. Ca supposerait de modifier le script appelé, PHPBB, donc, pour tracer les octets reçus. J'imagine donc que ça va être délicat à tester.

    Tu as une URL pour qu'on puisse tester ? Monter une maquette pour déboguer si c'est PHPBB que tu utilises, ça va pas être facile.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 06/05/2009, 12h12
  2. Réponses: 1
    Dernier message: 14/08/2008, 15h38
  3. [AJAX] Vista et Ajax
    Par M1000 dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 05/12/2007, 09h15
  4. [AJAX] Permission refusée d'utiliser la méthode open
    Par DaSoul dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 03/11/2006, 06h34
  5. [AJAX] Requète SQL en utilisant du Javascript
    Par tstievet dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 31/10/2006, 10h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo