Internet Explorer, problemas com History Back

5 respostas
O

Olá pessoal, tudo bom?

Estou desenvolvendo uma aplicação usando Struts e tenho tido esse tipo de problema em algumas páginas. Por exemplo: O usuário efetua o login e depois é redirecionado para uma página jsp, porém a URL que aparece no browser é a da action (login.do), até aí normal, sem problemas. A partir daí o usuário pode entrar em páginas internas do sistema acessadas por um menu. Suponha que eu clique no cadastro de clientes. Na página de cadastro de clientes há um botão voltar que possui um simples código de history.back(). Aí acontece o problema, no IE qdo clico no voltar ele deveria voltar para a página inicial, que na URL do browser seria login.do, qdo isso acontece recebo aquela famosa mensagem de Página Expirada (que na verdade quer dizer que eu devo dar um refresh para postar novamente os dados do login). Esse problema não acontece com o firefox que não submete novamente a página, apenas volta (o que o IE deveria fazer!!!). Alguém tem alguma dica, ou já teve o mesmo problema?

[]'s

renato

5 Respostas

fcmartins

Refaça a requisição original que montou a página anterior, esse tipo de recurso do JavaScript não é padronizado nem confiável.

Esse tipo de recurso não é padronizado, portanto não há certo ou errado, o melhor é evitar usar.

O

Qto ao history back, blz vou ter que alterar mesmo as páginas já que naum é um recurso padronizado.

Agora, um outro problema que eu tenho é o seguinte, o usuário faz o login e é redirecionado para a página inicial, se ele voltar pelo browser, volta para a tela de login (tudo certo) agora se ele clicar no botão de avançar do browser recebo a mensagem de página expirada, isso acontece no IE e pela mensagem é pq ele deveria postar novamente os dados do form. O que eu faço pra resolver isso?

obrigado

renato

cv1

Nao tem muito como “resolver”, eh assim que funciona e pronto :slight_smile:

O que voce pode fazer pra evitar isso eh fazer o famoso “redirect after POST”: sempre que voce receber dados atraves de POST, processe o que vc tem que processar e redirecione o browser (ao inves de responder ao POST) pra uma pagina nova.

O

Obrigado pelas dicas. Uma outra dúvida é a seguinte: dado que depois de um post há um redirect, como eu faço pra passar os attributos para a proxima página que anteriormente eu utilizava request.setAttribute para setar? Vou ter que usar session para passá-los?

obrigado

cv1

Dah uma lida aqui:

Criado 11 de fevereiro de 2005
Ultima resposta 16 de fev. de 2005
Respostas 5
Participantes 3