0 votes

Problèmes avec Struts et AJAX

Voici mon problème, je construis une application modulaire, et j'utilise la SwitchAction dans le struts-config.xml pour changer de fichier de configuration, mais le problème est que lorsque je passe à l'autre module, et que je reviens au fichier de configuration par défaut, je reçois une erreur, car ma page utilise une requête AJAX pour obtenir des données de la base de données, et j'ai découvert que le préfixe que j'ai d'abord envoyé pour changer le module est retourné et qu'il renvoie la mauvaise url :

Page modulos.vm, accès au lien new, le lien new a le préfixe "new" donc il accède à la page dans le module "new" avec cette URL "/new/new.do", accès au new.vm sans problème, accès à modulos.vm à nouveau, la fonction AJAX devrait être "/admin/modulos. do?somedata", mais l'URL qui revient est "/new/admin/modulos.do", et je ne sais pas quoi faire, en accord avec la documentation struts "prefix - The module prefix (beginning with "/") of the module to which control should be switched. Utilisez une chaîne de longueur nulle pour le module par défaut. L'objet ModuleConfig approprié sera stocké en tant qu'attribut de requête, de sorte que toute logique ultérieure prendra en compte le nouveau module."

Quelqu'un a-t-il une idée de la raison pour laquelle AJAX inclut le "new" dans l'URL ? ou quelqu'un a-t-il une idée de la manière de supprimer le chemin relatif ou quelque chose qui pourrait m'aider ?

J'ai presque oublié de mentionner que j'utilise JQuery pour appeler la fonction AJAX.

1voto

Phill Sacre Points 16238

Vous devez utiliser des URL absolues plutôt que relatives. Pour l'instant, votre JavaScript construit une URL relative basée sur le chemin d'accès au contexte actuel.

Si vous utilisez JSP, vous pouvez placer ceci dans votre en-tête :

<script type="text/javascript">
var CONTEXT_PATH = "<%= request.getContextPath() %>";
</script>

Ensuite, lorsque vous effectuez l'appel AJAX, vous devez construire l'URL de la manière suivante :

$.post(CONTEXT_PATH + '/admin/modulos.do'....)

C'est ce que je fais si j'ai besoin d'obtenir le chemin d'accès au contexte en JavaScript - puis de l'utiliser chaque fois que j'ai besoin de faire un appel AJAX au serveur.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X