我可以让IEMobile不从重定向的URL中删除#吗?

时间:2008-11-04 16:50:48

标签: http http-headers ie-mobile

IEMobile访问我的网站时遇到问题。我使用的某个重定向有302响应代码和标题(是的,那是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

这适用于大多数浏览器。输入IEMobile(通过Windows Mobile 6.1)。收到此回复后,IEMobile将前往

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

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

3 个答案:

答案 0 :(得分:0)

阅读RFC2616指定

  

位置:absoluteURI

其中绝对URI由RFC2396

定义

跟踪absoluteURI的定义时,#字符不是URI定义的一部分,这由第4.1节确认。

  

4.1。片段标识符

     

使用URI引用时   执行检索操作   识别资源,可选   片段标识符,与
分开   由交叉阴影线(“#”)的URI   字符,由附加
组成   参考信息   由用户代理解释   检索行动已经   成功完成。就这样,它   不是URI的一部分,但通常是   与URI结合使用。

简而言之,#frarag是不是的URI的一部分,并且被浏览器剥离,因为它不是Location:标头的一部分。

答案 1 :(得分:0)

戴夫是对的,谷歌搜索出现了同样的问题。

丑陋的解决方法:如果您想支持该浏览器,请使用元刷新标记而不是重定向。

答案 2 :(得分:0)

你几乎无能为力;它似乎是你的浏览器中的一个错误(实施者显然错过了RFC 2616错误)。