Quero fazer um redirecionamento que recarregue a página inteira para que os cookies do meu servidor da web sejam atualizados quando a página carregar. 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 em um controlador Angular?
Respostas:
Para
<a>
tags :Você precisa manter
target="_self"
sua<a>
marcaExistem três casos em que o AngularJS executará um recarregamento de página inteira:
Exemplo:
<a href="https://stackoverflow.com/ext/link?a=b" target="_self">link</a>
Exemplo:
<a href="http://angularjs.org/">link</a>
Exemplo:
<a href="https://stackoverflow.com/not-my-base/link">link</a>
Usando javascript :
O
$location
serviço permite que você altere apenas o URL; não permite que você recarregue a página. Quando você precisa mudar a URL e recarregar a página ou navegar para uma página diferente, por favor use uma API de nível inferior:$window.location.href
.Vejo:
fonte
<a href="..." target="_self">
é o que funcionou para mim. obrigado !Tivemos o mesmo problema, trabalhando a partir do código JS (ou seja, não da âncora HTML). É assim que resolvemos isso:
Se necessário, altere virtualmente o URL atual por meio do
$location
serviço. Isso pode ser útil se o seu destino for apenas uma variação do URL atual, para que você possa aproveitar os$location
métodos auxiliares. Por exemplo, corremos$location.search(..., ...)
apenas para alterar o valor de um parâmetro de string de consulta.Crie o novo URL de destino, usando o atual,
$location.url()
se necessário. Para funcionar, este novo teve que incluir tudo após o esquema, domínio e porta. Por exemplo, se você deseja mover 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 a liderança
'/'
também).Atribua um novo URL de destino em nível inferior :
$window.location.href = destinationUrl;
Forçar recarga, ainda em baixo nível:
$window.location.reload();
fonte
Depois de pesquisar e fornecer uma sessão de acerto e teste, posso resolvê-lo especificando primeiro o url como
então recarregue
fonte
Eu tive o mesmo problema. Quando eu uso
window.location
,$window.location
ou mesmo<a href="..." target="_self">
a rota não atualiza a página. Portanto, os serviços em cache são usados, o que não é o que desejo em meu aplicativo. Resolvi isso adicionandowindow.location.reload()
afterwindow.location
para forçar a página a recarregar após o roteamento. Este método parece carregar a página duas vezes. Pode ser um truque sujo, mas faz o trabalho. É assim que eu tenho agora:fonte
Tente isto
fonte