[解決済み] Axiosを使用したAccess Control Origin Headerのエラー
2022-03-03 23:05:41
質問
React WebアプリでAxiosを使ってAPIコールを行っています。しかし、Chromeでこのエラーが発生します。
XMLHttpRequest cannot load https://example.restdb.io/rest/mock-data. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8080' is therefore not allowed access.
{
axios
.get("https://example.restdb.io/rest/mock-data", {
headers: {
"x-apikey": "API_KEY",
},
responseType: "json",
})
.then((response) => {
this.setState({ tableData: response.data });
});
}
また、同じ問題についてStack Overflowでいくつかの回答を読みましたが、タイトルが
Access-Control-Allow-Origin
が、それでも解決する方法がわかりませんでした。Chromeの拡張機能を使ったり、一時的にハックして解決するようなことはしたくありません。上記の問題を解決するための標準的な方法を提案してください。
いくつかの答えを試した後、私はこれで試してみました。
headers: {
'x-apikey': '59a7ad19f5a9fa0808f11931',
'Access-Control-Allow-Origin' : '*',
'Access-Control-Allow-Methods':'GET,PUT,POST,DELETE,PATCH,OPTIONS',
},
今度は、次のようなエラーが発生しました。
Request header field Access-Control-Allow-Origin is not allowed by Access-Control-Allow-Headers in preflight response
解決方法は?
バックエンドがCORSをサポートしている場合、おそらくこのヘッダをリクエストに追加する必要があります。
headers: {"Access-Control-Allow-Origin": "*"}
[更新】のお知らせ] アクセス制御-許可-オリジン は応答ヘッダーです。したがって、CORSを有効にするには、サーバーからの応答にこのヘッダーを追加する必要があります。
しかし、ほとんどの場合、より良い解決策は リバースプロキシ そうすれば、CORS を有効にしなくても、サーバーはフロントエンドからバックエンドにリクエストをリダイレクトすることができます。
CORSの仕組みについては、こちらのドキュメントをご覧ください。 https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS
関連
-
[解決済み】Uncaught ReferenceError。Reactが定義されていない
-
[解決済み] Access-Control-Allow-Originヘッダーはどのように機能するのですか?
-
[解決済み] XMLHttpRequestが読み込めない XXX 'Access-Control-Allow-Origin' ヘッダがない
-
[解決済み] 私のJavaScriptコードは "No 'Access-Control-Allow-Origin' header is present on requested resource "というエラーを受け取りますが、Postmanはそうならないのはなぜですか?
-
[解決済み] REST APIからデータを取得しようとしたときに、要求されたリソースに'Access-Control-Allow-Origin'ヘッダーが存在しない。
-
[解決済み] プリフライト要求に対する応答がアクセス制御チェックを通過しない
-
[解決済み] file:// URLから実行されるアプリケーションのリクエストで、"Origin null is not allowed by Access-Control-Allow-Origin" エラーが発生する。
-
[解決済み】Access-Control-Allow-OriginでOriginが許可されない。
-
[解決済み】http://localhost CORS originが機能しないのはなぜですか?
-
[解決済み】リクエストヘッダーフィールドのAccess-Control-Allow-Headersが許可されない。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】最大呼び出しスタックサイズ超過エラーとその修正方法とは?
-
[解決済み】SyntaxError: 'import' と 'export' は 'sourceType: module' とだけ表示されるかもしれない - Gulp
-
[解決済み】Uncaught ReferenceError。Reactが定義されていない
-
[解決済み】未定義のプロパティ 'bind' を読み込めない。React.js【重複あり
-
[解決済み】エラー:リクエストのエンティティが大きすぎる
-
[解決済み】npm install --legacy-peer-deps は具体的に何をするのですか?どんなときに推奨されるのか/どんな使用例が考えられるのか?
-
[解決済み】JS ファイルが net::ERR_ABORTED 404 (Not Found) を取得する)
-
[解決済み] ローカルファイルを開くことができません - Chrome: ローカルリソースのロードが許可されていません
-
[解決済み】JavaScriptで相対URLへのリダイレクトを行う
-
[解決済み] Access-Control-Allow-Originヘッダーはどのように機能するのですか?