[解決済み] Node.jsで複数ドメインのAccess-Control-Allow-Originを有効にする [duplicate]
2023-03-04 22:57:52
質問
node.jsでCORSを許可しようとしているのですが、問題点は
*
を
Access-Control-Allow-Origin
もし
Access-Control-Allow-Credentials
が設定されている場合。
また、配列やカンマ区切りの値で
Access-Control-Allow-Origin
というような方法が提案されています。
Access-Control-Allow-Origin Multiple Origin Domains?
しかし、node.jsでこの方法はできないようです。
["http://example.com:9001", "http://example.com:5001"].map(domain => {
res.setHeader("Access-Control-Allow-Origin", domain);
});
res.header("Access-Control-Allow-Credentials", true);
ここでの問題は、配列の最後の値で上書きされることです。したがって、ヘッダは
res.setHeader("Access-Control-Allow-Origin", "http://example.com:5001");
クライアントブラウザからのエラー。
XMLHttpRequestを読み込むことができません。 http://example.com:9090/api/sync . この場合 'Access-Control-Allow-Origin' ヘッダには、提供されたオリジンと同じではない値 'http://example.com:5001'であり、提供されたオリジンと等しくない。 したがって、オリジン'http://example.com:9001'はアクセスを許可されていません。
どのように解決するのですか?
私の express アプリケーションで、複数のオリジンを許可するために使用しているものを以下に示します。
app.use((req, res, next) => {
const allowedOrigins = ['http://127.0.0.1:8020', 'http://localhost:8020', 'http://127.0.0.1:9000', 'http://localhost:9000'];
const origin = req.headers.origin;
if (allowedOrigins.includes(origin)) {
res.setHeader('Access-Control-Allow-Origin', origin);
}
//res.header('Access-Control-Allow-Origin', 'http://127.0.0.1:8020');
res.header('Access-Control-Allow-Methods', 'GET, OPTIONS');
res.header('Access-Control-Allow-Headers', 'Content-Type, Authorization');
res.header('Access-Control-Allow-Credentials', true);
return next();
});
関連
-
[解決済み] Access-Control-Allow-Originヘッダーはどのように機能するのですか?
-
[解決済み] 私のJavaScriptコードは "No 'Access-Control-Allow-Origin' header is present on requested resource "というエラーを受け取りますが、Postmanはそうならないのはなぜですか?
-
[解決済み] Access-Control-Allow-Origin複数オリジンのドメイン?
-
[解決済み] REST APIからデータを取得しようとしたときに、要求されたリソースに'Access-Control-Allow-Origin'ヘッダーが存在しない。
-
[解決済み] プリフライト要求に対する応答がアクセス制御チェックを通過しない
-
[解決済み] file:// URLから実行されるアプリケーションのリクエストで、"Origin null is not allowed by Access-Control-Allow-Origin" エラーが発生する。
-
[解決済み] CORSです。資格情報フラグが true の場合、Access-Control-Allow-Origin でワイルドカードを使用できない。
-
[解決済み】Access-Control-Allow-OriginでOriginが許可されない。
-
[解決済み】「アクセス制御-許可-オリジン」がない - Node / Apacheのポートの問題
-
[解決済み] Firebaseストレージとアクセス制御・許可・オリジン
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] リソースの読み込みに失敗しました: net::ERR_CONNECTION_REFUSED : Nodejs
-
[解決済み] 再インストールを繰り返しても、npm run でモジュール 'sass' が見つからない。
-
[解決済み】Google spreadsheet api Requestに不十分な認証スコープがあった。
-
[解決済み] 非推奨パッケージに関するNPM警告メッセージ
-
[解決済み】Mongooseで、日付でソートするにはどうしたらいいですか?(node.js)
-
webpack ENOENTソリューションの起動
-
[解決済み] ExpressJS : res.redirect()が期待通りに動作しない?
-
[解決済み] express は `body-parser deprecated undefined extended` としてエラーを投げます。
-
[解決済み] ランタイム 'node' が PATH で見つからない - Visual Studio Code と Node.js
-
[解決済み] Access-Control-Allow-Origin複数オリジンのドメイン?