يمكنني أن أجعل IEMobile ليس تجريد # من URL لإعادة توجيه؟

StackOverflow https://stackoverflow.com/questions/262443

  •  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).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top