يمكنني أن أجعل IEMobile ليس تجريد # من URL لإعادة توجيه؟
-
06-07-2019 - |
سؤال
وأواجه مشكلة مع IEMobile الوصول إلى موقعي. A إعادة توجيه معين يمكنني استخدام يحتوي على رمز 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 (من خلال ويندوز موبايل 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.
وباختصار، فإن #fragment هو لا م> جزء من URI، ويتم تجريده من قبل المتصفح لا جزء من الموقع: رأس.
نصائح أخرى
وديف هو الحق، غوغلينغ يأتي مع بعض في نفس القضية.
والحل القبيحة: استخدام علامة تحديث الفوقية بدلا من إعادة توجيه إذا كنت ترغب في دعم هذا المتصفح
وهناك القليل الذي يمكن القيام به؛ يبدو أن يكون خطأ في المتصفح الخاص بك (على ما يبدو المنفذين قد غاب لخطأ مطبعي RFC 2616).