English 中文(简体)
我能让IEMobile不从重定向的URL中删除#吗?
原标题:
  • 时间:2008-11-04 16:50:47
  •  标签:

我在使用IEMobile访问我的网站时遇到了问题。我使用的某个重定向具有302响应代码和标题(是的,这是应用程序引擎)。

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

这对大多数浏览器都有效。输入IEMobile(通过Windows Mobile 6.1)。在接收到这个响应后,IEMobile前往

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

请注意缺失的#input-top。我该怎么办?

最佳回答

RFC2616阅读它规定

位置:绝对URI

绝对URI的定义在RFC2396中确定。

追踪absoluteURI的定义,#字符不是URI定义的一部分,这在4.1节得到确认。

4.1. 片段标识符

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.

简而言之,#fragment不是URI的一部分,浏览器会将其剥离,因为它不是Location:头部的一部分。

问题回答

戴夫是正确的,谷歌搜索出现了一些相同的问题。

丑陋的解决方法:如果你想支持那个浏览器,使用 meta 刷新标签代替重定向。

你可以做的不多;这似乎是你的浏览器出现了一个错误(实现者显然错过了RFC 2616勘误表)。





相关问题
热门标签