94 votes

AngularJS - comment puis-je faire une redirection avec une charge pleine page ?

Je veux faire une redirection qui effectue un rechargement de la page entière pour que les cookies de mon serveur web sont actualisées lors du chargement de la page. et ne fonctionnent pas, ils font une route angulaire qui ne touche pas le serveur.

Quelle est la façon correcte de faire une demande de serveur complet dans un contrôleur angulaire ?

183voto

jszobody Points 13108

Pour <a> tags:

Vous avez besoin de coller target="_self" sur votre <a> balise

Il y a trois cas où AngularJS va effectuer un rechargement complet de la page:

  • Des liens qui contiennent de l'élément cible
    Exemple: <a href="http://stackoverflow.com/ext/link?a=b" target="_self">link</a>
  • Absolue des liens qui vont vers un autre domaine
    Exemple: <a href="http://angularjs.org/">link</a>
  • Les liens commençant par '/' qui mènent à un autre chemin de la base lorsque la base est définie
    Exemple: <a href="http://stackoverflow.com/not-my-base/link">link</a>

À l'aide de javascript:

L' $location service vous permet de modifier uniquement l'URL; il ne vous permet pas de recharger la page. Lorsque vous avez besoin de changer l'URL et de recharger la page ou de naviguer vers une autre page, utilisez un niveau inférieur de l'API: $window.location.href.

Voir:

33voto

superjos Points 2770

Nous avons eu le même problème, en travaillant à partir du code JS (c'est à dire pas d'ancrage HTML). C'est comment nous avons résolu que:

  1. Si nécessaire, pratiquement modifier l'URL actuelle par le biais $location de service. Cela peut être utile si votre destination est juste une variation sur l'URL en cours, de sorte que vous pouvez prendre avantage de l' $location helper. E. g. nous avons couru $location.search(..., ...) de simplement changer la valeur d'une querystring paramater.

  2. Construire la nouvelle URL de destination, à l'aide de courant $location.url() si nécessaire. Pour fonctionner, cette nouvelle avait pour inclure tout ce qui est après le schéma, le domaine et le port. Donc par exemple, si vous voulez vous déplacer à:

    http://yourdomain.com/YourAppFolder/YourAngularApp/#/YourArea/YourAction?culture=en

    ensuite, vous devez définir l'URL comme dans:

    var destinationUrl = '/YourAppFolder/YourAngularApp/#/YourArea/YourAction?culture=en';

    (avec les leaders de la '/' ).

  3. Attribuer de nouvelles URL de destination à bas niveau: $window.location.href = destinationUrl;

  4. La Force de rechargement, toujours à un bas niveau: $window.location.reload();

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