Ich möchte über React auf die Discourse-API zugreifen.
Ich erhalte folgenden Fehler:
localhost/:1 Der Zugriff auf XMLHttpRequest an 'https://community.oppkey.host/posts.json' von der Herkunft 'http://localhost:3000' wurde durch die CORS-Richtlinie blockiert: Auf der angeforderten Ressource ist kein 'Access-Control-Allow-Origin'-Header vorhanden.
Das sind meine CORS-Herkunftseinstellungen im Discourse-Admin-Panel.
Auf dem Discourse-Server habe ich Folgendes in /var/discourse/containers/app.yml stehen:
So versuche ich, auf die Discourse-API zuzugreifen:
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("Versuche, die API unter " + apiEndPoint + " abzurufen");
axios
.get(apiEndPoint)
.then((res) => {
const currentData = res.data;
updateData(currentData);
console.log("API abgerufen");
console.log(currentData);
})
.catch((err) => console.log(err));
}, []);
Wenn ich einen externen Server mit Fake-Daten verwende, funktioniert der React-Code.
Ich verstehe im Allgemeinen nicht, wie CORS und React funktionieren, daher wäre jede Hilfe willkommen.
Ich habe bereits eine Lösung mit einem API-Proxy-Server, den ich geschrieben habe, um API-Aufrufe von meinem Discourse-Server an einen anderen REST-API-Server weiterzuleiten, über den ich React verbinde. Obwohl das funktioniert, ist es langsam. Ich möchte API-Aufrufe direkt von React an die Discourse-API-Endpunkte senden.




