【发布时间】:2022-12-04 03:23:19
【问题描述】:
我可以通过 Postman 访问这个端点 http://catfacts-api.appspot.com/api/facts?number=99,它返回 JSON
此外,我正在使用 create-react-app 并希望避免设置任何服务器配置。
在我的客户端代码中,我试图使用 fetch 来做同样的事情,但我得到了错误:
请求中不存在“Access-Control-Allow-Origin”标头 资源。因此不允许来源 'http://localhost:3000' 使用权。如果不透明的响应满足您的需求,请设置请求的 mode 为 'no-cors' 以获取禁用 CORS 的资源。
所以我试图将一个对象传递给我的 Fetch,这将禁用 CORS,如下所示:
fetch('http://catfacts-api.appspot.com/api/facts?number=99', { mode: 'no-cors'}) .then(blob => blob.json()) .then(data => { console.table(data); return data; }) .catch(e => { console.log(e); return e; });有趣的是,我得到的错误实际上是此函数的语法错误。我不确定我的实际
fetch是否损坏,因为当我删除 { mode: 'no-cors' } 对象并为其提供不同的 URL 时,它工作得很好。我也尝试传入对象
{ mode: 'opaque'},但这从上面返回了原始错误。我相信我需要做的就是禁用 CORS ..我错过了什么?
【问题讨论】:
-
{ mode: 'no-cors'} 帮助了我。谢谢
标签: javascript reactjs cors create-react-app fetch-api