سؤال

هل من الممكن منع المتصفح من الموجهات التالية عند إرسال مدعوم-s (أيللحصول على توجيه رمز حالة العودة والتعامل معها نفسي)?

هل كانت مفيدة؟

المحلول

لا وفقا W3C القياسية لهذا الكائن مدعوم (التشديد مضاف):

إذا كان الرد هو إعادة توجيه HTTP:

إذا كان أصل URL نقلها موقع رأس نفس المصدر مع مدعوم الأصل ، إعادة توجيه لا تنتهك لانهائية حلقة الاحتياطات ، بشفافية اتبع إعادة توجيه مع مراعاة من نفس الأصل طلب قواعد الحدث.

كانوا معتبرا ومن أجل مستقبل الإصدار:

هذه المواصفات لا تشمل الميزات التالية التي يتم النظر في إصدار مستقبلي من هذه المواصفات:

  • خاصية تعطيل الموجهات التالية;

ولكن أحدث مواصفات لم يعد يذكر هذا.

نصائح أخرى

جلب API يدعم أنماط مختلفة من التعامل مع إعادة توجيه : follow، error، وmanual، ولكن لا أستطيع أن أجد وسيلة لعرض URL جديد أو رمز الحالة عندما تم إلغاء إعادة توجيه. يمكنك فقط وقف إعادة توجيه نفسها، ومن ثم يبدو وكأنه خطأ (استجابة فارغة). إذا كان هذا هو كل ما تحتاجه، وأنت على ما يرام. <الإضراب> كما يجب أن تكون على علم أن الطلبات المقدمة عبر هذا API ليست للإلغاء بعد . هي الآن.

وأما بالنسبة مدعوم، يمكنك HEAD الخادم وفحص ما إذا كان URL قد تغير:

var http = new XMLHttpRequest();
http.open('HEAD', '/the/url');
http.onreadystatechange = function() {
    if (this.readyState === this.DONE) {
        console.log(this.responseURL);
    }
};
http.send();

وأنت لن تحصل على رمز الحالة، ولكن سوف تجد URL الجديد دون تحميل صفحة كاملة منه.

ويمكنك استخدام خاصية responseURL للحصول على وجهة إعادة توجيه أو تحقق ما إذا كان الرد المنال في نهاية المطاف من موقع قبولك.
هذه بالطبع يعني جلب النتيجة على أي حال، ولكن على الأقل يمكنك الحصول على المعلومات الضرورية حول الوجهة إعادة توجيه وعلى سبيل المثال كشف الظروف عندما كنت ترغب في تجاهل الاستجابة.

ولا لك لم يكن هناك أي مكان في API التي كشفها مدعوم التي تسمح لك لتجاوز السلوك الافتراضي الخاص به من بعد 301 أو 302 تلقائيا.

إذا كان العميل تشغيل IE على النوافذ ثم يمكنك استخدام يستخدم WinHttp بدلا من ذلك إلى تعيين خيار لمنع هذا السلوك ولكن هذا الحل الحد للغاية.

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