Habe Probleme beim Zugriff auf die Discourse APIs von der React-App

Der Zugriff auf fetch unter ‘https://boostfloral.discourse.group/categories.json?’ vom Ursprung ‘http://localhost:3000’ wurde durch die CORS-Richtlinie blockiert: Das Anforderungsheaderfeld API-key ist durch Access-Control-Allow-Headers in der Preflight-Antwort nicht zulässig.

Ich erhalte das obige Problem, wenn ich versuche, die Discourse-APIs aufzurufen. Ich habe bereits ein SSL-Zertifikat auf meinen Servern hinzugefügt. Ich füge die CORS-Optionen hinzu, die in meinem Admin-Panel vorhanden sind, erhalte aber immer noch dieses Problem.

Ist jemandem so etwas schon einmal passiert und könnte mir helfen, wie ich das lösen kann???

Ist es ein User API Key? Wenn ich mich nicht irre, sollte es User-Api-Key sein.

Jetzt erhalte ich die folgende Antwort.

Der Zugriff auf fetch unter „https://boostfloral.discourse.group/latest.json?order=default&ascending=false“ von Ursprung „http://localhost:3000“ wurde durch die CORS-Richtlinie blockiert: Das Anforderungsheaderfeld api-username ist gemäß Access-Control-Allow-Headers in der Preflight-Antwort nicht zulässig.

Wenn Sie versuchen, die Admin API (im Gegensatz zur User API) zu nutzen, sind die erforderlichen Header-Felder Api-Key und Api-Username.

Ich denke, für öffentliche Javascript-Clients ist die Admin-API nicht erlaubt (leider erschwert das alles, ich weiß!). Aber Sie müssen stattdessen User API keys specification verwenden.

Ich versuche selbst noch herauszufinden, wie das geht. Ich möchte nur eine öffentlich verfügbare .json-Antwort abrufen.

Wenn es öffentlich ist, sollte die Konfiguration von CORS ausreichen und Sie sollten sich überhaupt nicht mit API-Schlüsseln befassen müssen.

2 „Gefällt mir“

Ja, danke! Das wurde für mich hier gelöst: Using JavaScript fetch to get publicly available page from Discourse into an external site (Discourse API) - #2 by pfaffman

@fahadaslam98 wie @RGJ sagte, wenn CORS richtig konfiguriert ist, dann sollte das Entfernen der API-Schlüssel aus den Headern funktionieren, :+1:

1 „Gefällt mir“