siriu Posté 17 Février 2012 Posté 17 Février 2012 Bonjour, Sur une page externe js j'ai un script ajax en jquery appelant une page PHP. Ce script peut être appelé depuis plusieurs dossier sur le site. En développent j'avais mis comme chemin vers la page PHP appelé depuis le script ajax son URL depuis la racine du site. Seulement en déplaçant le site sur un serveur,utilisant un virtual host, le script ajax ne trouve plus la page php. Bien sur je peux corriger pour le faire fonctionner, mais j'aimerai savoir quel est la technique pour avoir une url qui fonctionne quel que soit l'emplacement du site. En PHP c'est simple mais sur un script jQuery, je ne sais pas faire Merci pour votre aide
yuston Posté 17 Février 2012 Posté 17 Février 2012 jQuery et plus généralement le Javascript est exécuté du côté client. Il est alors impossible, à ma connaissance, d'atteindre un fichier non atteignable via l'URL.
Ernestine Posté 19 Février 2012 Posté 19 Février 2012 Bien sur je peux corriger pour le faire fonctionner, mais j'aimerai savoir quel est la technique pour avoir une url qui fonctionne quel que soit l'emplacement du site. En PHP c'est simple mais sur un script jQuery, je ne sais pas faire Pour que ça fonctionne quel que soit l'emplacement de la page web exécutant le javascript, il suffit simplement d'écrire l'url absolue dans la requête ajax. Si l'url n'est pas absolue, alors il devient nécessaire que le chemin relatif soit toujours exact. En fait, ajax ou pas ajax, c'est pareil pour n'importe quelle requête...
siriu Posté 19 Février 2012 Auteur Posté 19 Février 2012 Bonjour, Merci pour vos réponses. Ernestine je suis d'accord mais par exemple en dev mon url est http://localhost/monsite et en prod http://www.monsite.com ... je ne peux donc pas avoir une url absolue commune si ?
Ernestine Posté 19 Février 2012 Posté 19 Février 2012 Si le script appelant (le javascript) et le script appelé (php) sont destinés à être sur le même site web (plus précisément sur le même domaine), alors le plus simple, c'est d'écrire tes urls en relatif, par exemple : machin.php ou ../truc/machin.php Ou bien en semi-absolue, c'est à dire à partir de la racine du domaine, donc en commençant par un slash : /machin.php ou /truc/machin.php etc... Ainsi, que tu sois en dev ou en prod, l'arborescence étant la même, ça marche dans tous les cas et tu n'as rien à changer C'est uniquement si le script appelant et le script appelé ne sont sont pas sur le même domaine qu'il faut alors écrire les urls en absolue (url complète avec le nom de domaine). Dans ce cas, l'idéal est de définir une bonne fois pour toutes une constante ayant pour valeur le nom de domaine où se trouve le script appelé.
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant