从react应用访问Discourse API时遇到问题

来自“http://localhost:3000”的对“https://boostfloral.discourse.group/categories.json?”的 fetch 访问已被 CORS 策略阻止:“请求标头字段 API-key 不允许在预检响应中通过 Access-Control-Allow-Headers”。

当我尝试调用 discourse API 时遇到上述问题。我已经为我的服务器添加了 SSL 证书。我正在添加我的管理员面板上存在的 CORS 选项,但仍然遇到此问题。

有人遇到过类似问题并能帮助我找到解决办法吗???

这是用户 API 密钥吗?如果我没记错的话,应该是 User-Api-Key

现在我收到以下响应。

来自源 ‘http://localhost:3000’ 对 ‘https://boostfloral.discourse.group/latest.json?order=default&ascending=false’ 的 fetch 访问已被 CORS 策略阻止:请求头字段 api-username 不允许由预检响应中的 Access-Control-Allow-Headers 字段。

如果您尝试使用 Admin API(而不是 User API),则所需的标头字段是 Api-KeyApi-Username

我认为对于公共 Javascript 客户端,不允许使用 admin api(遗憾的是,我知道这让事情变得复杂了!),但你将不得不改用 https://meta.discourse.org/t/user-api-keys-specification/48536。

对我来说,我还在摸索如何做。我只想获取一个公开可用的 .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 个赞