مشكلة في الوصول إلى واجهات برمجة تطبيقات Discourse من تطبيق React

تم حظر الوصول إلى fetch في ‘https://boostfloral.discourse.group/categories.json؟’ من المصدر ‘http://localhost:3000’ بواسطة سياسة CORS: لا تسمح ترويسة الطلب API-key بواسطة Access-Control-Allow-Headers في استجابة ما قبل الرحلة.

أواجه المشكلة المذكورة أعلاه عند محاولة استدعاء واجهات برمجة تطبيقات discourse. لقد أضفت بالفعل شهادة SSL إلى خوادمي. أنا أضيف خيارات CORS الموجودة في لوحة الإدارة الخاصة بي ولكنني ما زلت أواجه هذه المشكلة.

هل واجه أي شخص شيئًا كهذا ويمكنه مساعدتي في إيجاد حل؟

هل هو مفتاح واجهة برمجة تطبيقات المستخدم؟ إذا لم أكن مخطئًا، فيجب أن يكون User-Api-Key.

الآن أتلقى الاستجابة التالية.

تم حظر الوصول إلى fetch في ‘https://boostfloral.discourse.group/latest.json?order=default&ascending=false’ من المصدر ‘http://localhost:3000’ بواسطة سياسة CORS: رأس الطلب api-username غير مسموح به بواسطة Access-Control-Allow-Headers في استجابة ما قبل الرحلة.

إذا كنت تحاول استهلاك واجهة برمجة تطبيقات المسؤول (على عكس واجهة برمجة تطبيقات المستخدم)، فإن حقول الرأس المطلوبة هي Api-Key و Api-Username.

أعتقد أنه بالنسبة لعملاء JavaScript العموميين، لا يُسمح بواجهة برمجة تطبيقات المسؤول (للأسف، هذا يعقد كل شيء، أعرف!) ولكن سيتعين عليك استخدام User API keys specification بدلاً من ذلك.

بالنسبة لي، ما زلت أحاول معرفة كيفية القيام بذلك أيضًا. أريد فقط سحب استجابة .json متاحة للجمهور.

إذا كانت متاحة للعامة، فيجب أن يكون تكوين CORS كافياً ولا تحتاج إلى الاهتمام بمفاتيح API على الإطلاق.

إعجابَين (2)

نعم، شكراً! تم حل هذه المشكلة بالنسبة لي هنا: Using JavaScript fetch to get publicly available page from Discourse into an external site (Discourse API) - #2 by pfaffman

@fahadaslam98 كما قال @RGJ، إذا تم تكوين CORS بشكل صحيح، فإن إزالة مفاتيح API من الرؤوس يجب أن تعمل، :+1:

إعجاب واحد (1)