AngularJS: ¿cómo puedo hacer un redireccionamiento con una carga de página completa?

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?

Para las tags :

Debes mantener target="_self" en tu etiqueta

Hay tres casos en que AngularJS realizará una recarga de página completa:

  • Enlaces que contienen elemento de destino
    Ejemplo: link
  • Enlaces absolutos que van a un dominio diferente
    Ejemplo: link
  • Enlaces que comienzan con ‘/’ que conducen a una ruta base diferente cuando se define base
    Ejemplo: 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:

  1. 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.

  2. 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).

  3. Asigne una nueva URL de destino a bajo nivel : $window.location.href = destinationUrl;

  4. 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();