真的很感激任何人的帮助。我对 React 开发比较陌生,使用 Mac OSX 和 Chrome 作为我的浏览器。我有一个小应用程序,它尝试使用“isomorphic-fetch”从 Yelp Fusion 的 API 发出异步 GET 请求,但收到以下错误:
获取 API 无法加载https://api.yelp.com/v3/businesses/search?[剩余 URL]对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许访问Origin ' http://localhost:3000 '。响应的 HTTP 状态代码为 500。如果不透明响应满足您的需求,请将请求的模式设置为“no-cors”以在禁用 CORS 的情况下获取资源。
我已经做了很多搜索,看看已经存在对相同问题的回应,但我对如何用我对这种开发环境的相对较新的知识来解决我的问题感到更加困惑。(似乎特别有用的答案是:对预检请求的响应没有通过访问控制检查和带有 componentDidMount 内的 HTTP 授权标头的 API 请求,但我真的不明白如何在我的环境中实际实施这些解决方案。我所做的任何尝试似乎不正确,不会导致更改。)。
作为旁注:我已经在 Chrome 浏览器上安装了 Allow-Control-Allow-Origin: * 扩展程序,但我收到了同样的错误 - 只是一个简短的、不太详细的描述:
获取 API 无法加载https://api.yelp.com/v3/businesses/search?[剩余网址] . 预检响应具有无效的 HTTP 状态代码 500
以下是我在代码中调用 fetch 的方式:
var options = (
method: 'get',
headers: new Headers({
'Access-Control-Allow-Origin': '*',
'Authorization': [my token]
'Content-Type': 'application/json'
})
}
return fetch(url, options);
这是由于我的标头语法与 Yelp Fusion 的 OAUTH2 令牌要求有关,我是否需要做一些与代理相关的事情,还是因为其他原因?如果与代理相关,目前我正在运行一个完全由客户端驱动的应用程序,并且根本不使用服务器端代码。鉴于我的环境,这仍然可能吗?任何关于我应该走哪个方向的指导以及澄清我的误解将不胜感激。
再次感谢您对成长中的开发人员的帮助。