Question sur AJAX (XMLHttpRequest)

Fermé
steeve93800 - 7 mai 2008 à 11:16
burnedsyn Messages postés 170 Date d'inscription samedi 29 septembre 2007 Statut Membre Dernière intervention 21 février 2009 - 7 mai 2008 à 12:26
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.

1 réponse

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
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
burnedsyn Messages postés 170 Date d'inscription samedi 29 septembre 2007 Statut Membre Dernière intervention 21 février 2009 16 > steeve93800
7 mai 2008 à 12:02
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
steeve93800 > burnedsyn Messages postés 170 Date d'inscription samedi 29 septembre 2007 Statut Membre Dernière intervention 21 février 2009
7 mai 2008 à 12:13
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
burnedsyn Messages postés 170 Date d'inscription samedi 29 septembre 2007 Statut Membre Dernière intervention 21 février 2009 16 > steeve93800
7 mai 2008 à 12:26
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