Je souhaite effectuer une redirection qui recharge une page complète afin que les cookies de mon serveur Web soient actualisés lors du chargement de la page. window.location = "/#/Next"
et window.location.href = "/#/Next"
ne fonctionnent pas, ils font une route angulaire qui n'atteint pas le serveur.
Quelle est la bonne façon de faire une demande de serveur complète dans un contrôleur angulaire?
Réponses:
Pour les
<a>
tags :Vous devez coller
target="_self"
sur votre<a>
tagIl y a trois cas où AngularJS effectuera un rechargement complet de la page:
Exemple:
<a href="https://stackoverflow.com/ext/link?a=b" target="_self">link</a>
Exemple:
<a href="http://angularjs.org/">link</a>
Exemple:
<a href="https://stackoverflow.com/not-my-base/link">link</a>
Utilisation de javascript :
Le
$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 recharger la page ou naviguer vers une autre page, s'il vous plaît utiliser une API de niveau inférieur:$window.location.href
.Voir:
la source
<a href="..." target="_self">
est ce qui a fonctionné pour moi. Merci !Nous avons eu le même problème, travaillant à partir du code JS (c'est-à-dire pas à partir de l'ancre HTML). Voici comment nous avons résolu cela:
Si nécessaire, modifiez virtuellement l'URL actuelle via le
$location
service. Cela peut être utile si votre destination n'est qu'une variante de l'URL actuelle, afin que vous puissiez tirer parti des$location
méthodes d'assistance. Par exemple, nous avons couru$location.search(..., ...)
pour simplement changer la valeur d'un paramètre de chaîne de requête.Créez la nouvelle URL de destination, en utilisant l'actuel
$location.url()
si nécessaire. Pour fonctionner, ce nouveau devait tout inclure après le schéma, le domaine et le port. Donc, par exemple, si vous souhaitez passer à:http://yourdomain.com/YourAppFolder/YourAngularApp/#/YourArea/YourAction?culture=en
alors vous devez définir l'URL comme dans:
var destinationUrl = '/YourAppFolder/YourAngularApp/#/YourArea/YourAction?culture=en';
(avec le leader
'/'
aussi).Attribuez une nouvelle URL de destination au bas niveau :
$window.location.href = destinationUrl;
Recharge forcée, toujours à bas niveau:
$window.location.reload();
la source
Après avoir recherché et donné une session d'essai et d'essai, je suis capable de le résoudre en spécifiant d'abord une URL comme
puis recharger
la source
J'ai eu le même problème. Lorsque j'utilise
window.location
,$window.location
ou même<a href="..." target="_self">
l'itinéraire ne rafraîchit pas la page. Ainsi, les services mis en cache sont utilisés, ce qui n'est pas ce que je souhaite dans mon application. Je l'ai résolu en ajoutantwindow.location.reload()
aprèswindow.location
pour forcer la page à se recharger après le routage. Cette méthode semble cependant charger la page deux fois. Peut-être un sale tour, mais ça fait le travail Voici comment je l'ai maintenant:la source
Essaye ça
la source