AngularJS – Como posso fazer um redirecionamento com um carregamento de página completo?

Eu quero fazer um redirecionamento que faça uma recarga de página inteira para que os cookies do meu servidor web sejam atualizados quando a página for carregada. window.location = "/#/Next" e window.location.href = "/#/Next" não funcionam, eles fazem uma rota Angular que não atinge o servidor.

Qual é a maneira correta de fazer uma solicitação completa do servidor dentro de um controlador Angular?

Para tags :

Você precisa colocar target="_self" na sua tag

Existem três casos em que o AngularJS executará uma recarga de página inteira:

  • Links que contêm elemento de destino
    Exemplo: link
  • Links absolutos que vão para um domínio diferente
    Exemplo: link
  • Links começando com ‘/’ que levam a um caminho base diferente quando a base é definida
    Exemplo: link

Usando javascript :

O serviço de $location permite que você altere apenas o URL; não permite recarregar a página. Quando você precisar alterar o URL e recarregar a página ou navegar para uma página diferente, use uma API de nível inferior: $window.location.href .

Vejo:

Nós tivemos o mesmo problema, trabalhando a partir do código JS (ou seja, não da âncora HTML). Foi assim que resolvemos isso:

  1. Se necessário, altere virtualmente o URL atual pelo serviço de $location . Isso pode ser útil se o seu destino for apenas uma variação do URL atual, para que você possa aproveitar os methods auxiliares do $location . Por exemplo, corremos $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 apenas alterar o valor de um parâmetro de querystring.

  2. Crie o novo URL de destino, usando $location.url() atual, se necessário. Para funcionar, este novo tinha que include tudo depois do esquema, domínio e porta. Então, por exemplo, se você quiser mudar para:

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

    então você deve definir o URL como em:

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

    (com o líder '/' também).

  3. Atribuir novo URL de destino em nível baixo : $window.location.href = destinationUrl;

  4. Forçar recarregar, ainda em nível baixo: $window.location.reload();

Depois de pesquisar e dar um hit e uma session de teste, consigo solucioná-lo especificando primeiro o URL

 $window.location.href = '/#/home/stats'; 

então recarregue

 $window.location.reload(); 

Eu tive o mesmo problema. Quando uso window.location , $window.location ou até mesmo a rota não atualiza a página. Assim, os serviços em cache são usados, o que não é o que eu quero no meu aplicativo. Eu resolvi adicionando window.location.reload() após window.location para forçar a página a recarregar após o roteamento. Este método parece carregar a página duas vezes embora. Pode ser um truque sujo, mas faz o trabalho. É assim que eu tenho agora:

  $scope.openPage = function (pageName) { window.location = '#/html/pages/' + pageName; window.location.reload(); }; 

Tente isso

 $window.location.href="#page-name"; $window.location.reload();