Question sur AJAX (XMLHttpRequest)

steeve93800 -  
burnedsyn Messages postés 174 Statut Membre -
Bonjour,
voila en fait je voudrai savoir pourquoi je ne peut pas acceder un site distant avec ajax a l'aide la methode open de l'objet XMLHttpRequest ?
par exemple quand je fait xhr.open("GET","ajax.php",true); j'arrive bien a recuperer le fichier ajax.php.

mais si je fais xhr.open("GET","https://www.google.fr/?gws_rd=ssl",true);

ou
xhr.open("GET","http://192.168.103.111",true); (qui est un site sur mon autre pc)

je n'obtient rien donc ma question est:

est ce normale que cette methode ne prend en compte que les fichiers dans le serveur locale?

et existe t il un moyen d'acceder a un site distant.

merci d'avance pour vos reponses.
Configuration: Linux Debian
Mozilla 1.8.1.12

1 réponse

  1. Enzyme59
     
    C'est peut-être parce que les deux adresses que tu fournis se limitent au nom de domaine et ne spécifient pas de fichier particulier... tu as essayé avec une URL du style "http://192.168.103.111/ajax.php" ?

    Bonne journée
    0
    1. steeve93800
       
      si j'ai deja specifier un nom de fichier comme http://192.168.103.111/rc.cgi?v=20

      et pouratnt ce fichier est bien dispo car quand j'utilise la commande wget pour recuperer ce fichier sa marche donc ya un probleme quelque part
      0
      1. burnedsyn Messages postés 174 Statut Membre 16 > steeve93800
         
        Si je ne me trompe pas xmlhttrequest ne peut ouvrir qu'une page sur l'url d'origine ce que tu peux faire pour contourner cela c'est de faire un fichier sur ton serveur de base qui lui bufferise un wget ou fopen de ton fichier cible et renvois ce buffer a ta page
        0
      2. steeve93800 > burnedsyn Messages postés 174 Statut Membre
         
        merci burnedsyn mais est ce que qu'elqu'un peut confirmer l'info comme quoi xmlhttrequest ne peut ouvrir qu'une page sur l'url d'origine

        merci
        0
      3. burnedsyn Messages postés 174 Statut Membre 16 > steeve93800
         
        Pour être plus précis :

        L'objet xmlhttprequest avant d'etre déclaré on peut ajouter cela pour autant que le serveur distant ai un certificat (je n'ai jamais essayé personnelement) je t'explique pourquoi après :)

        try {
        netscape.security.PrivilegeManager.enablePrivilege('UniversalBrowserRead');
        }
        catch(e) {
        alert('erreur');
        }

        mais cela ne fonctionnera que sous gecko ...

        Donc la solution universel est de faire un mini proxy sur ton serveur

        ou tu appelle toi meme la page que tu veux :

        exemple

        echo file_get_contents("http://nomserveur.ext/scriptexterne.php?variable=".$variable);

        voila
        0