Pregunta

Tengo un problema con IEMobile accediendo a mi sitio. Una cierta redirección que uso tiene un código de respuesta 302 y los encabezados (sí, eso es un motor de aplicaciones):

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

Esto funciona bien para la mayoría de los navegadores. Ingrese a IEMobile (a través de Windows Mobile 6.1). Al recibir esta respuesta, IEMobile se dirige a

http://localhost/games/edit-game.html?game=110&frame_to_edit=3

Tenga en cuenta el # input-top que falta. ¿Qué puedo hacer?

¿Fue útil?

Solución

Lectura de RFC2616 que especifica

  

Ubicación: absoluteURI

donde el URI absoluto se define por RFC2396

Rastreando la definición de absoluteURI, el carácter # no es parte de la definición de URI, esto se confirma en la sección 4.1

  

4.1. Identificador de fragmento

     

Cuando se usa una referencia URI para   realizar una acción de recuperación en el
  recurso identificado, el opcional   identificador de fragmento, separado de
  el URI por un rayado cruzado (" # ")   carácter, consta de
adicional   información de referencia para ser   interpretado por el agente de usuario después   la acción de recuperación ha sido   completado con éxito. Como tal   no es parte de un URI, pero a menudo es   usado junto con un URI.

En resumen, el #fragmento es no parte del URI, y el navegador lo está despojando como parte del encabezado Ubicación:.

Otros consejos

Dave tiene razón, Google busca el mismo problema.

Solución fea: use una metaetiqueta de actualización en lugar de redirigir si desea admitir ese navegador.

Hay poco que puedas hacer; parece ser un error en su navegador (los implementadores aparentemente han perdido una errata RFC 2616).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top