مرحبا...

لدي صفحة تحتوي على قائمة من المجلدات.

مثال:

الرابط الرئيسي لإستعراض القائمة

http://localhost:8080

الرابط الذي اود ارسال طلب له :

http://example.localhost:8080

حاولت إرسال الطلب بواسطة xhr و fetch ولكن يتم اعتبار المجلد الفرعي مختلف عن الأصل وبالتالي يتم رفض الطلب من قبل المتصفح وكالتالي:

Access to fetch at 'http://example.localhost:8080/' 
from origin 'http://localhost:8080' has been blocked 
by CORS policy: No 'Access-Control-Allow-Origin' 
header is present on the requested resource. 
If an opaque response serves your needs, 
set the request's mode to 'no-cors' to 
fetch the resource with CORS disabled.

شيفرة الطلب:

async function makeRequest() {
    try {
        const response = await fetch('http://examlpe.localhost:8080', {
            mode : 'cors'
            });

        console.log('status code: ', response.status); // 👉️ 200

        if (!response.ok) {
            console.log(response);
            throw new Error(`Error! status: ${response.status}`);
        }

        const result = await response;
        return result;
    } catch (err) {
        console.log(err);
    }
}

makeRequest();

اذا فعلت كما يطلب المتصفح مني وقمت بالتعديل على نمط الطلب وجعله no-cors احصل على status: 0 (انظر الصورة بالأسفل) مع انه من المفترض ان يكون الstatus 200 اذا كان الطلب ناجح.

مثال على خرج الطرفية عندما يكون النمط no-cors

ملاحظة مهمة¦ لا اود التعديل على اعدادات امان المتصفح او الخادم فهل هذا ممكن ؟

معلومات اضافية:

بعض المجلدات تحتوي على تطبيقات كاملة مربوطة بقواعد بيانات وتعمل باكمل وجه وبعض المجلدات تحتوي على مجلدات فرعية وملفات عشوائية.

السبب في محاولتي ارسال الطلب هو لمعرفة المجلدات التي تحتوي على تطبيقات صالحة وذلك لانها تعيد الحالة 200 في حين ان المجلدات الأخرى قد تعيد 500 او 403 او غيرها. (اذا كانت هناك طريقة اخرى للتأكد من ذلك، يسعدني تلقي إقتراحات). :)

شكرا لكم ...