Quiero hacer una redirección que haga una recarga de página completa para que las cookies de mi servidor web se actualicen cuando se carga 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?
Debes mantener target="_self"
en tu etiqueta
Hay tres casos en que AngularJS realizará una recarga de página completa:
link
link
link
Usando javascript :
El servicio $location
permite cambiar solo la URL; no te permite volver a cargar la página. Cuando necesite cambiar la URL y volver a cargar la página o navegar a otra página, use una API de nivel inferior: $window.location.href
.
Ver:
Tuvimos el mismo problema, trabajando desde el código JS (es decir, no desde el ancla HTML). Así es como lo resolvimos:
Si es necesario, prácticamente modifique la URL actual a través del servicio $location
. Esto podría ser útil si su destino es solo una variación de la URL actual, para que pueda aprovechar $location
métodos de $location
helper. Por ejemplo, ejecutamos $location.search(https://stackoverflow.com/questions/16002984/angularjs-how-can-i-do-a-redirect-with-a-full-page-load/..., https://stackoverflow.com/questions/16002984/angularjs-how-can-i-do-a-redirect-with-a-full-page-load/...)
para cambiar el valor de un parámetro de consulta.
Cree la nueva URL de destino, utilizando $location.url()
actual 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 quieres mudarte a:
http://yourdomain.com/YourAppFolder/YourAngularApp/#/YourArea/YourAction?culture=en
entonces debes establecer la URL como en:
var destinationUrl = '/YourAppFolder/YourAngularApp/#/YourArea/YourAction?culture=en';
(con el líder '/'
también).
Asigne una nueva URL de destino a bajo nivel : $window.location.href = destinationUrl;
Force Reload, aún en nivel bajo: $window.location.reload();
Después de buscar y dar una sesión de prueba, puedo usarlo solo especificando primero la URL como
$window.location.href = '/#/home/stats';
luego recarga
$window.location.reload();
Tuve el mismo problema. Cuando uso window.location
, $window.location
o incluso la ruta no actualiza la página. Entonces los servicios en caché se usan, que no es lo que quiero en mi aplicación. Lo resolví agregando
window.location.reload()
después de window.location
para forzar a la página a volver a cargar después del enrutamiento. Sin embargo, este método parece cargar la página dos veces. Puede ser un truco sucio, pero hace el trabajo. Así es como lo tengo ahora:
$scope.openPage = function (pageName) { window.location = '#/html/pages/' + pageName; window.location.reload(); };
Prueba esto
$window.location.href="#page-name"; $window.location.reload();