誰の助けにも本当に感謝します。 Mac OSXとChromeをブラウザとして使って、Reactで開発するのは比較的新しいものです。私は「同型フェッチ」を使用してYelpのFusionのAPIから非同期GETリクエストを作成しようとする小さなアプリケーションを持っていますが、次のエラー受け取る:異種フェッチを反応させないYelp Fusion APIを使用した 'Access-Control-Allow-Origin'ヘッダーなし
Fetch API cannot load https://api.yelp.com/v3/businesses/search ?[remaining URL] Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin ' http://localhost:3000 ' is therefore not allowed access. The response had HTTP status code 500. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.
を私が同じにどのような回答を参照して検索の多くを行っています問題はすでに存在していますが、この種の開発環境に対する私の比較的新しい知識で私の問題に取り組む方法はさらに混乱しています。 (特に役に立つと思われる回答はとAPI Request with HTTP Authorization Header inside of componentDidMountですが、自分の環境でこれらのソリューションを実際に実装する方法を実際には理解していません。
はサイドノートとして:私のChromeブラウザに*拡張子が、私は同じエラーを受け取る - それだけ短く、あまり手の込んだ説明:私は許可-コントロールが許起源をインストールしている
Fetch API cannot load https://api.yelp.com/v3/businesses/search ?[remaining URL]. Response for preflight has invalid HTTP status code 500
次は私が私のコードでフェッチを呼び出す方法です:
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トークンの要求と私のヘッダの構文に、私はプロキシ関連何かをする必要があります問題です他の何かの理由ですか?プロキシ関連の場合、現在は完全にクライアント主導型のアプリケーションを実行しており、サーバーサイドのコードはまったく使用していません。これは私の環境を考えれば可能でしょうか? 私はどの方向に向かうべきか、私の誤解を明確にするための指針は非常に高く評価されます。
また、開発者が増えてきてくれてありがとうございます。
あなたの迅速で徹底的な回答に感謝します。私が正しく理解しているのであれば、アプリケーションにサーバーサイドコードを実装しない限り、Yelp Fusion API呼び出しを行うことはできません。 node.jsサーバーのようなものを使用すると私はそうすることができます。これは比較的単純なAPI要求ですか、何らかの回避策が必要でしょうか? – gpsugy
@ gpsugyあなたがアプリケーションにサーバー側の処理を実装するか、特別なCORSプロキシを設定しない限り、Yelp Fusion APIコールを作成することはできません。https://stackoverflow.com/questions/20035101 /どうやらYelpのAPIはいえJSONPをサポートしています/ 42744707#42744707 – sideshowbarker
@gpsugy無アクセス制御 - 許可 - 起源 - ヘッダが-現在オン要求されたリソースです。 https://stackoverflow.com/questions/3827614/yelp-api-origin-http-localhost8888-is-not-allowed-by-access-control-allow-ori https://api.jqueryを使用してください。 com/jquery.getjson /などのフロントエンドコードでは、フロントエンドコードからYelp APIのクロスオリジンへのリクエストを行うことができます。私はそれは素晴らしいニュースだ – sideshowbarker