Могу ли я заставить 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 определяется через RFC2396
Отслеживая определение absoluteURI, символ # не является частью определения URI, это подтверждается разделом 4.1
4.1.Идентификатор фрагмента
Когда ссылка на URI используется для выполнения действия поиска в
идентифицированный ресурс, необязательный идентификатор фрагмента, отделенный от
URI с помощью перекрестия ("#") символ, состоящий из дополнительных
справочная информация, которая должна быть интерпретирована агентом пользователя после успешного завершения операции поиска .Как таковой, он не является частью URI, но часто используется в сочетании с URI.
Короче говоря, #fragment - это нет является частью URI и удаляется браузером как не являющаяся частью Местоположения:заголовок.
Другие советы
Дейв прав, поиск в Google приводит к той же проблеме.
Уродливый обходной путь: используйте мета-тег обновления вместо перенаправления, если вы хотите поддерживать этот браузер.
Ты мало что можешь сделать; похоже, это ошибка в вашем браузере (разработчики, по-видимому, пропустили ошибку RFC 2616).