httphttp-headersie-mobile

Can I make IEMobile not strip the # from the URL of a redirect?


I am having an issue with IEMobile accessing my site. A certain redirect I use has a 302 response code, and the headers (yep, that's 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

This works fine for most browsers. Enter IEMobile (via Windows Mobile 6.1). Upon receiving this response, IEMobile heads to

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

Note the missing #input-top. What can I do?


Solution

  • Reading RFC2616 it specifies

    Location: absoluteURI

    where absolute URI is defined by RFC2396

    Tracing the definition of absoluteURI, the # character is not part of the URI definition, this is confirmed by section 4.1

    4.1. Fragment Identifier

    When a URI reference is used to perform a retrieval action on the
    identified resource, the optional fragment identifier, separated from
    the URI by a crosshatch ("#") character, consists of additional
    reference information to be interpreted by the user agent after the retrieval action has been successfully completed. As such, it is not part of a URI, but is often used in conjunction with a URI.

    In short, the #fragment is not part of the URI, and is being stripped by the browser as not part of the Location: header.