اكتشاف دعم الخادم/الموقع لطلبات XMLHttpRequests عبر المجال؟
-
12-11-2019 - |
سؤال
أنا مهتم بمعرفة ما هو الحد الأدنى من كود Javascript عبر المتصفح (jQuery جيد أيضًا) الذي قد يكون ممكنًا للتحقق مما إذا كان الموقع الذي أرغب في إرسال طلبات AJAX عبر المجال لديه دعم له CORS
.
أعلم أن jQuery لديه طريقة للتحقق مما إذا كان المتصفح يدعم ذلك.لكنني أود حقًا أن أكون قادرًا على التحقق مما إذا كان ذلك ممكنًا الموقع البعيد كما يدعم ذلك.
اعتقدت أنه كان عليّ فقط التحقق من رأس HTTP ولكن بالطبع XHR سيطرح استثناءً عند محاولة تقديم طلب عبر النطاق إلى موقع لا يدعمه على وجه التحديد.
ولكن هل هناك طريقة للتحقق من أن الاستثناء قد تم طرحه XMLHttpRequest
كان بسبب عدم دعم الموقع CORS
بدلا من شيء آخر يحدث بشكل خاطئ؟(ليس من الضروري أن يدعم XDomainRequest.)
على أي حال، لست متأكدًا من أفضل/أسرع طريقة عبر المتصفحات لجلب ملف HTTP HEAD
باستخدام AJAX، والتي أفترض أنها الطريقة الخفيفة بدلاً من جلب الصفحة، وما إلى ذلك.
حالة الاستخدام:بمجرد أن أعرف ما إذا كان المتصفح وموفر AJAX يدعمان ذلك CORS
أم لا، يمكنني اختيار ما إذا كنت تريد إرسال أكثر مميزة JSON
/CORS
الطلبات أو الرجوع إليها JSONP
الطلبات عند الضرورة.
المحلول
بعيد مثل ال تخصيص, ، إنه غير ممكن.
إذا كان هناك خطأ في الشبكة:في حالة أخطاء DNS ، فشل مفاوضات TLS ، أو أي نوع آخر من أخطاء الشبكة ، قم بتطبيق خطوات خطأ الشبكة.لا تطلب أي نوع من تفاعل المستخدم النهائي...
خلاف ذلك:قم بإجراء فحص مشاركة الموارد.في حالة فشل الإرجاع، قم بتطبيق خطوات خطأ الشبكة...
لا توجد طريقة خاصة لتحديد الحالة التي لا يُسمح فيها بـ CORS، نظرًا لأن خطوات خطأ الشبكة يتم تطبيقها في أي حال.