Kann ich IEMobile die # von der URL einer Umleitung nicht abstreifen?
-
06-07-2019 - |
Frage
ich habe ein Problem mit IEMobile meiner Website zugreifen. Eine gewisse Umleitung Ich benutze hat einen 302-Antwort-Code und die Header (yep, das ist 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
Dies funktioniert für die meisten Browser. Geben Sie IEMobile (via Windows Mobile 6.1). Auf diese Antwort empfängt, IEMobile Köpfe zu
http://localhost/games/edit-game.html?game=110&frame_to_edit=3
Beachten Sie die fehlenden #input-top
. Was kann ich tun?
Lösung
Reading RFC2616 es gibt
Lage: absoluteURI
, wo absolute URI ist definiert durch RFC2396
die Definition von absoluteURI Tracing, das Zeichen # nicht Teil der URI-Definition ist, wird dies durch Abschnitt bestätigt 4.1
4.1. Fragment Identifier
Wenn eine URI-Referenz verwendet wird, um eine Abruf Aktion auf dem
ausführen identifizierten Ressource, die optional Fragmentbezeichner, getrennt von
die URI von einem Kreuzschraffur ( „#“) Charakter, besteht aus zusätzlichen
Referenzinformationen sein vom Benutzerprogramm interpretiert, nachdem der Abruf Aktion wurde erfolgreich abgeschlossen. Als solches ist es oft ist nicht Teil einer URI, sondern ist in Verbindung mit einem URI verwendet.
Kurz gesagt, die #fragment ist nicht Teil der URI, und durch den Browser wird als nicht Teil der Location gestrippt: header.
Andere Tipps
Dave richtig ist, googeln kommt mit einigen der gleichen Ausgabe auf.
Hässliche Abhilfe:. Verwenden, um einen Meta-Refresh-Tag statt Umleitung, wenn Sie diesen Browser unterstützen mögen
Es gibt wenig, was Sie tun können; es scheint ein Fehler in Ihrem Browser zu sein (die Implementierer haben offenbar einen RFC 2616 Erratum verpaßt).