أرغب في الوصول إلى واجهة برمجة تطبيقات Discourse باستخدام React.
أحصل على الخطأ التالي:
localhost/:1 تم حظر الوصول إلى XMLHttpRequest إلى 'https://community.oppkey.host/posts.json' من المصدر 'http://localhost:3000' بسبب سياسة CORS: لا توجد رأسية 'Access-Control-Allow-Origin' في المورد المطلوب.
هذه هي إعدادات أصل CORS الخاصة بي باستخدام لوحة إدارة Discourse.
على خادم Discourse، لدي ما يلي في /var/discourse/containers/app.yml
هذا هو الطريقة التي أحاول بها الحصول على واجهة برمجة تطبيقات Discourse.
export const DiscoursePanel = () => {
const [ allData, updateData ] = useState([]);
useEffect(() => {
const apiEndPoint = 'https://community.oppkey.host/posts.json';
/* const apiEndPoint = 'https://jsonplaceholder.typicode.com/posts'; */
console.log("trying to get API on " + apiEndPoint);
axios
.get(apiEndPoint)
.then((res) => {
const currentData = res.data;
updateData(currentData);
console.log("got api");
console.log(currentData);
})
.catch((err) => console.log(err));
}, []);
إذا استخدمت خادمًا خارجيًا يحتوي على بيانات وهمية، فإن كود React يعمل.
لا أفهم كيفية عمل CORS و React بشكل عام، لذا فإن أي مساعدة ستكون موضع تقدير.
لدي أشياء تعمل مع خادم وكيل API قمت بكتابته لتحويل مكالمات API من خادم Discourse الخاص بي إلى خادم REST API آخر أستخدمه للاتصال بـ React. على الرغم من أن هذا يعمل، إلا أنه بطيء. أرغب في إرسال مكالمات API مباشرة من React إلى نقاط نهاية واجهة برمجة تطبيقات Discourse.




