2010-04-21 3 views
0

J'essaye de faire fonctionner l'Ajax inter-domaines. J'ai téléchargé un script de proxy PHP à partir du site Yahoo Developer, l'ai exécuté à partir de la ligne de commande et vérifié qu'il reçoit le XML du serveur avec une requête GET.Comment appeler le script de proxy PHP à partir de JQuery

Maintenant, j'essaie de me connecter au script PHP dans JS sans résultat. Je donne les résultats suivants:

<script type="text/javascript" src="jquery-1.4.2.js"></script> 
<script type="text/javascript"> 
$.ajax({ 
    type:"GET", 
    url:"proxy.php", 
    dataType:"html", 
    success:function(msg){ 
     alert(msg); 
    } 
}); 
</script> 

Ce que cela fait, cependant, est à la sortie de la source de du script PHP dans la zone d'alerte, pas le XML! Où vais-je mal?

Répondre

1

Votre serveur doit réellement exécuter php pour que cela fonctionne. De votre question, il semble que ce soit juste en train de servir proxy.php en tant que fichier texte.

Vous devez soit utiliser la syntaxe côté serveur du script proxy qui fonctionne pour votre plate-forme, soit également exécuter/prendre en charge php en même temps. Je recommanderais le premier, l'exécution d'un proxy équivalent dans n'importe quelle langue/plate-forme que vous êtes déjà en cours d'exécution côté serveur.

+0

+1 cause nick obtiennent toujours le premier à répondre aujourd'hui :) – Reigel

+0

@Nick, merci pour la réponse. Alors, dois-je configurer un serveur pour exécuter proxy.php sur mon ordinateur client? Je ne peux pas exécuter le script sur le serveur que j'essaie de contacter avec JS. Je suis désespérément confus :-) – recipriversexclusion

+0

OK, j'ai installé Apache2 sur mon ordinateur client (Ubuntu Karmic) et j'ai copié proxy.php dans/var/www. Maintenant, quand je vais à l'URL http: //localhost/proxy.php je peux réellement voir le XML reçu du serveur distant. Le problème est, quand je remplace l'url de ligne: "proxy.php" ci-dessus avec l'URL: "http: //localhost/proxy.php", il n'affiche pas le XML reçu dans une boîte d'alerte, comme il le devrait, mais affiche simplement dans une nouvelle page. – recipriversexclusion

Questions connexes