IEMobile がリダイレクトの URL から # を削除しないようにできますか?
-
06-07-2019 - |
質問
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.フラグメント識別子
URIリファレンスを使用して検索アクションを実行する場合
識別されたリソース、オプションのフラグメント識別子、から分離
Crosshatch( "#")文字によるURIは、追加で構成されています
検索アクションが正常に完了した後、ユーザーエージェントによって解釈される参照情報。そのため、それはURIの一部ではありませんが、URIと組み合わせて使用されることがよくあります。
つまり、#fragment は ない URI の一部であり、場所の一部としてブラウザによって削除されます。ヘッダ。
他のヒント
デイブは正しい、グーグルはいくつかの同じ問題を思い付く。
Uい回避策:ブラウザをサポートする場合は、リダイレクトではなくメタリフレッシュタグを使用します。
できることはほとんどありません。ブラウザのバグのようです(実装者は明らかにRFC 2616エラッタを見逃しています)。