我可以让IEMobile不从重定向的URL中删除#吗?
-
06-07-2019 - |
题
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
。我该怎么办?
解决方案
阅读RFC2616指定
位置:absoluteURI
其中绝对URI由 RFC2396 定义
跟踪absoluteURI的定义时,#字符不是URI定义的一部分,这由第4.1节确认。
4.1。片段标识符
使用URI引用时 对
执行检索操作 识别资源,可选 片段标识符,与
分开 交叉线(“#”)的URI 字符,由额外的
组成 参考信息 由用户代理解释 检索行动已经 成功完成。就这样,它 不是URI的一部分,但通常是 与URI结合使用。
简而言之,#frarag是不是的URI的一部分,并且被浏览器剥离,因为它不是Location:标题的一部分。
其他提示
戴夫是对的,谷歌搜索出现了同样的问题。
丑陋的解决方法:如果您想支持该浏览器,请使用元刷新标记而不是重定向。
你几乎无能为力;它似乎是你的浏览器中的一个错误(实施者显然错过了RFC 2616错误)。
不隶属于 StackOverflow