2009-05-25 5 views
0

J'ai la pile CakePHP dans/var/www/siteComment puis-je m'assurer que le chemin dans l'appel de saisie semi-automatique jQuery vers le contrôleur/l'action CakePHP se résout correctement?

d'une vue sous le contrôleur AI faire un appel ajax jquery:

$("#searchstring").autocomplete("/items/getitemsforautocomplete", { ... more code 

lorsque l'appel est déclenché, je peux voir de Firebug que CakePHP veut appeler:

http://localhost/items/getitemsforautocomplete?q=me 

Notez que 'site' est manquant, ce qui a 404.

Quand je télécharge à mon site web fonctionne de la w oui, ça devrait. Comment dois-je configurer cela correctement?

Répondre

0

Est-ce que '/' ne va pas dans le répertoire racine du site? Si votre fichier javascript est dans/var/www/site/script, vous voudrez peut-être faire:

$("#searchstring").autocomplete("../items/getitemsforautocomplete", { ... more code } 
+0

Merci - qui l'a fait. (En seulement 11 min -. Aimer la pile) – user101110

+0

$ ("# searchString") autocomplete (" webroot;?> items/getitemsforautocomplete", { - le fait-il aussi – user101110

0

Essayez d'utiliser FULL_BASE_URL dans votre JS, comme:

$("#searchstring").autocomplete("<?= FULL_BASE_URL ?>/items/getitemsforautocomplete", { 

pas la façon la plus élégante, mais il a résolu certains de mes maux de tête dans le passé.

+0

Cela devrait être vrai - mais cela ne fonctionne pas Première réponse :-) – user101110

0

cela est probablement dû au niveau de l'appel fait à partir de jquery. est le http://localhost/items/ ... l'URL correcte?

Une balise html non utilisée qui est vraiment bonne définit la base href. alors tous les liens et les appels javascript sont faits à partir de cela.

 
<base href="http://localhost/site/"> 

puis retirez simplement les principaux '/' de votre script

 
$("#searchstring").autocomplete("items/getitemsforautocomplete", { ... more code 
+0

Si je laisse tomber le gâteau principal '/' pensera qu'il devrait trouver l'action Items dans le contrôleur courant (appelé Shops) au poste 'getitemsforautocomplete' en tant qu'argument. Pas bon - mais merci bien – user101110

+0

Dépend de ce que vous avez défini la base href. Si tel est le cas, jquery devrait appeler [http:/localhost/site/items/get ..] – David