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] initialisé un objet ajax?


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 164
    Par défaut [AJAX] initialisé un objet ajax?
    Bonjour
    voila le probleme que j'ai :

    en local mon script marche correctement, mais des que je la deplace sur un site web, mon objet n'est plus initialisé et jen'arrive pas a comprendre pourquoi j'ai esseyé avec ie et ff et c la meme chose .

    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
    <script>
     var xhr = null;
     function getXhr(){
         if (window.XMLHttpRequest)     // Objet de la fenêtre courant
        { 
                xhr = new XMLHttpRequest();    // Firefox, Safari, ...
        }
        else 
        if (window.ActiveXObject)   // Version Active
        {
               xhr = new ActiveXObject("Microsoft.XMLHTTP");    // Internet Explorer
        }
        else
        {
          xhr=false;
        }
    }
        getXhr();
        xhr.onreadystatechange = function()
        {
            if(xhr.readyState == 4 && xhr.status == 200) 
            {
              alert(xhr.responseText+" "+xhr.readyState);
            }
        }
        document.write(xhr.readyState);
        xhr.open("GET","http://serveur/aaa.php?page_demandee="+(location.pathname+location.search)+"&hote=44&referer_client="+(document.referrer),true);
        xhr.send(null);
    </script>
    en local j'ai bien la reponse du serveur et le readystate a 4
    et sur le web je ne rentre pas dans le if et readystate reste a 0 (non initialisé)

    depuis hier je galere donc je requiere votre aide.


    merci par avance

    edit : est ce possible que les serveurs des sites ne gerent pas (meme si c'est executé coté client)

    car meme les exemple du net fonctionne en local mais pas sur le web

  2. #2
    Rédacteur
    Avatar de MasterOfChakhaL
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2004
    Messages
    2 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 147
    Par défaut
    juste une question...

    pourquoi as-tu une balise <a ...> dans ton xhr.open?
    j'attire également ton attention sur le fait qu'avec la méthode get, tu passes tes paramètres dans l'url, url limité à 256 caractères...
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    N'oubliez pas de cliquer sur quand votre question à trouvé une solution.

    Si vous n'avez pas encore lu les règles du club, mieux vaut tard que jamais!

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 164
    Par défaut
    heuu le <a je ne sais pas dans mon code cela n'y est pas.

    pour l'envoie des parametres j'ai testé en POST c'est pareil en local sa marche impecable et sur les sites web non.

    jai esseyer de faire une fonction dans un fichier js externe, dans le head, et dans le body et sa ne marche pas plus non plus

    je ne comprend vraiment pas.

    je creer un fichier appellé test.html je louvre de sur mon ordi sa fonctionne je fais copier coller sur diffents sites hebergé sur differents serveurs et la cela ne marche pas .

    j'ai editée le <a href je ne sais pas pouruoi cela c'est mis

    voici le code en post :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    xhr.open("POST","http://serveur/aaa.php",true);
        xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
        xhr.send("page_demandee="+(location.pathname+location.search)+"&hote=44&referer_client="+(document.referrer));

  4. #4
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 2
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.write(xhr.readyState);

    Je ne suis pas expert en la matière, je suis même débutant en javascript, mais je pense que cette ligne est mal placé, cette instruction represente l'état de la transaction mais tu l'as disposé avant d'ouvrir avec open, donc il sera toujours 0.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 164
    Par défaut
    en fait si je le met apres en local il passe a l'etat 1 (connexion etablie) et sur les sites, plus rien ne s'affiche apres le xhr.send(....


    voici le dernier 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
    <script>
     function init(){
        var xhr = null; 
        if(window.XMLHttpRequest) xhr = new XMLHttpRequest(); 
        else if(window.ActiveXObject) xhr = new ActiveXObject("Microsoft.XMLHTTP"); 
        else xhr=false;
     
        return xhr;
     
    }
        var xhr= init();
        xhr.onreadystatechange = function()
        {
            if(xhr.readyState == 4 && xhr.status == 200) 
            {
              alert(xhr.responseText+" "+xhr.readyState);
            }
        }
     
        xhr.open("POST","http://mon serveur/aaa.php",true);
        xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
        xhr.send("&hote=44&referer_client="+(document.referrer));
        document.write(xhr.readyState+" ok");
    </script>
    avec ce code placé entre le head, avec firefox j'ai l'erreur suivant :
    Erreur : uncaught exception: Permission refusée d'appeler la méthode XMLHttpRequest.open
    lorsque que je mets ceci :
    netscape.security.PrivilegeManager.enablePrivilege('UniversalBrowserRead');
    j'ai cette erreur
    Erreur : uncaught exception: Un script de « http://monsite » s'est vu refuser des privilèges UniversalBrowserRead.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 164
    Par défaut
    bn d'apres ce que j'ai cru comprnedre l'erruer viens du fait que ladresse du serveur ou j'envoie les données n'est pas la meme que le seveur ou le script est executé, donc apparemen il faudrai activé le mod mod_proxy de apache reste a savoir si cela sera possible pour mon besoin

    si je me trompe dites le moi

    ++

  7. #7
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 2
    Par défaut
    une petite question : où se trouve ton php aaa.php précisement ?

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 164
    Par défaut
    alors aaa.php se trouve sur un serveur a dont l'adresse serait par exemple www.monserveur.com

    et le script sera placé sur les sites b et c dont les serveurs seront ceux des clients (dns different hebergeur differents.......)

    c'est pour cela quen php cela ne me pose aucun souci pour envoier les données dans les entete, et en javascript, pour les sites ne gerant pas le php asp.. j'ai vu comme solution Ajax.

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

Discussions similaires

  1. [AJAX] Destruction d'objet ajax qui ne répond pas
    Par boubacach dans le forum AJAX
    Réponses: 4
    Dernier message: 27/05/2009, 10h12
  2. [AJAX] Est-il possible de desistancier un objet ajax
    Par Manau2000 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 26/06/2008, 12h08
  3. [AJAX] [Scriptaculous] Déclaration objet Ajax/Scriptaculous
    Par barnabe-est dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 14/09/2007, 08h42
  4. [AJAX] Concaténer 2 objets HttpRequest
    Par Braz dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 06/06/2006, 13h45
  5. [POO] PHP Objet, Ajax et webcontrols...
    Par davcha dans le forum Langage
    Réponses: 7
    Dernier message: 01/05/2006, 19h45

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