Quiero hacer una redirección que recargue la página completa para que las cookies de mi servidor web se actualicen cuando se cargue la página. window.location = "/#/Next"
y window.location.href = "/#/Next"
no funcionan, hacen una ruta angular que no llega al servidor.
¿Cuál es la forma correcta de realizar una solicitud de servidor completa dentro de un controlador angular?
Respuestas:
Para
<a>
etiquetas :Necesitas pegar
target="_self"
tu<a>
etiquetaHay tres casos en los que AngularJS realizará una recarga de página completa:
Ejemplo:
<a href="https://stackoverflow.com/ext/link?a=b" target="_self">link</a>
Ejemplo:
<a href="http://angularjs.org/">link</a>
Ejemplo:
<a href="https://stackoverflow.com/not-my-base/link">link</a>
Usando javascript :
El
$location
servicio le permite cambiar solo la URL; no le permite volver a cargar la página. Cuando tenga que cambiar la URL y vuelva a cargar la página o navegar a una página diferente, por favor utilice una API de nivel inferior:$window.location.href
.Ver:
fuente
<a href="..." target="_self">
es lo que funcionó para mí. Gracias !Tuvimos el mismo problema, trabajando desde código JS (es decir, no desde HTML anchor). Así es como solucionamos eso:
Si es necesario, modifique virtualmente la URL actual a través del
$location
servicio. Esto puede resultar útil si su destino es solo una variación de la URL actual, para que pueda aprovechar los$location
métodos auxiliares. Por ejemplo, corrimos$location.search(..., ...)
para cambiar el valor de un parámetro de cadena de consulta.Cree la nueva URL de destino, utilizando la actual
$location.url()
si es necesario. Para funcionar, este nuevo tenía que incluir todo después del esquema, el dominio y el puerto. Entonces, por ejemplo, si desea mudarse a:http://yourdomain.com/YourAppFolder/YourAngularApp/#/YourArea/YourAction?culture=en
entonces debes configurar la URL como en:
var destinationUrl = '/YourAppFolder/YourAngularApp/#/YourArea/YourAction?culture=en';
(con el protagonista
'/'
también).Asignar una nueva URL de destino a bajo nivel :
$window.location.href = destinationUrl;
Recarga forzada, todavía a bajo nivel:
$window.location.reload();
fuente
Después de buscar y dar una sesión de prueba y prueba, puedo hacerlo solo especificando primero la URL como
luego recarga
fuente
Tuve el mismo problema. Cuando lo uso
window.location
,$window.location
ni siquiera<a href="..." target="_self">
la ruta actualiza la página. Entonces se usan los servicios en caché, que no es lo que quiero en mi aplicación. Lo resolví agregandowindow.location.reload()
afterwindow.location
para obligar a que la página se recargue después del enrutamiento. Sin embargo, este método parece cargar la página dos veces. Podría ser un truco sucio, pero funciona. Así es como lo tengo ahora:fuente
Prueba esto
fuente