[Ajax] XMLHttpRequest et URL rewriting

Petit nouveau ! | 4 Messages

03 juil. 2008, 23:40

Hello

J'ai un souci avec une fonction Ajax que j'utilise régulièrement et bizarrement cela ne fonctionnait plus sur une nouvelle page. J'obtiens le message d'erreur : Permission refusée d'appeler la méthode XMLHttpRequest. J'ai pu identifier le problème mais je ne vois pas comment le résoudre.

Concrètement, mes pages sont accessibles via URL rewriting :
http://ssdomaine.domaine.com/page-nb.html
qui en realité sont :
http://www.domaine.com/site/?www=ssdomaine&file=nb

Et pour la première fois, je voulais intégrer un formulaire de recherche exploitant Ajax présent sur chaque page du site. La fonction JS/Ajax va chercher la page de traitement "rechercher.php" et c'est là que ça foire.

A cause de l'URL rewriting, la fonction pense que la page PHP est à une autre adresse.
D'ailleurs si je tape l'adresse http://www.domaine.com/site/?www=ssdomaine&file=nb aucun bug !
Sauf que je voudrais que ca fonctionne avec http://ssdomaine.domaine.com/page-nb.html

Evidemment j'ai essayé de préciser l'URL mais cela ne marche pas mieux :

Code : Tout sélectionner

xhr_object.open("POST", "http://www.domaine.com/site/rechercher.php", true);
Donc avez-vous la moindre idée de comment débuguer l'affaire ?

Merci
Modifié en dernier par Mediadim le 04 juil. 2008, 16:35, modifié 2 fois.

Eléphant du PHP | 377 Messages

04 juil. 2008, 16:21

hm, n'aurais tu pas un moyen de faire pointer http://ssdomaines.domaine.com/rechercher.php sur http://www.domaine.com/site/rechercher.php ? parce qu'à première vue, ce sera le seul moyen que tu auras de faire ce que tu veux
quand tu dis que la fonction "pense" que le PHP est à une autre adresse, tu as tout à fait raison, et effectivement, pour elle, il EST à une autre adresse.
Donc à part une règle de plus dans ton URL Rewrite, pas de solution ;)
Petit scarabée deviendra grand

Petit nouveau ! | 4 Messages

04 juil. 2008, 16:32

Eh bien c'est exactement ce que je viens de tenter (les grands esprits se rencontrent) et ca marche !

J'ai mis à jour mon htaccess pour que http://ssdomaine.domaine.com/rechercher soit fonctionnel pour ma page rechercher.php et j'ai modifié ainsi dans ma page de traitement :
xhr_object.open("POST", "http://ssdomaine.domaine.com/rechercher", true);

Pff, je croyais devoir tout refaire sans Ajax avec des iframes ou que sais-je quand j'ai pensé à ça. N'étant pas hyper à l'aise avec htaccess, je n'y ai pensé qu'en dernier recours.

Merci quand même, cela me montre qu'il n'y avait pas d'autre solution...