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?
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.