我可以通过Postman到达端点http://catfacts-api.appspot.com/api/facts?number=99
,它返回JSON
此外,我正在使用创建-反应-应用程序,并希望避免设置任何服务器配置。
在我的客户端代码中,我试图使用fetch
来做同样的事情,但我得到了错误:
请求上没有'Access-Control-Allow-Origin'报头 资源。因此,不允许使用Origin 'http://localhost:3000' 访问。如果不透明响应满足您的需求,请设置请求的
. mode to '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..我错过了什么?