Posso fazer IEMobile não tira a # a partir do URL de um redirecionamento?
-
06-07-2019 - |
Pergunta
Estou tendo um problema com IEMobile acessando meu site. Um certo uso redirecionamento I tem um código de resposta 302, e os cabeçalhos (Sim, isso é app-engine):
Server Development/1.0 Python/2.5.2 Date Tue, 04 Nov 2008 16:47:02 GMT Content-Type text/html; charset=utf-8 Cache-Control no-cache Location http://localhost/games/edit-game.html?game=110&frame_to_edit=3#input-top Content-Length 0
Isso funciona bem para a maioria dos navegadores. Digite IEMobile (via Windows Mobile 6.1). Ao receber essa resposta, IEMobile cabeças para
http://localhost/games/edit-game.html?game=110&frame_to_edit=3
Observe o #input-top
faltando. O que posso fazer?
Solução
Reading RFC2616 especifica
Localização: absoluteURI
onde absoluta URI é definida por RFC2396
Seguindo a definição de absoluteURI, o caractere # não é parte da definição URI, isto é confirmado pela secção 4.1
4.1. Fragmento Identificador
Quando uma referência URI é usado para executar uma ação de recuperação no
recurso identificado, o opcional identificador de fragmento, separado do
o URI por um crosshatch ( "#") caráter, consiste em
adicional referenciar a informação seja interpretados pelo agente de utilizador depois a acção de recuperação foi completado com sucesso. Como tal, ele não é parte de um URI, mas é muitas vezes usado em conjunto com um URI.
Em suma, o #fragment é não parte da URI, e está sendo despojado pelo navegador como não faz parte da Localização: cabeçalho.
Outras dicas
Dave está certo, pesquisando surge com alguma o mesmo problema.
solução alternativa Feio:. Utilizar uma meta tag de actualização em vez de redirecionamento se você quiser apoiar esse navegador
Há pouco pode fazer; parece ser um bug no navegador (os implementadores, aparentemente, ter perdido uma errata RFC 2616).