リクエストヘッダーフィールドAccess-Control-Allow-Headersは、プリフライトレスポンスでは単独では許可されません。質問する

リクエストヘッダーフィールドAccess-Control-Allow-Headersは、プリフライトレスポンスでは単独では許可されません。質問する

私は CORS の問題に何度も遭遇し、通常は修正できますが、MEAN スタック パラダイムからこれを見て本当に理解したいと思っています。

以前は、これらの問題をキャッチするために Express サーバーにミドルウェアを追加しただけでしたが、リクエストでエラーが発生する何らかの事前フックがあるようです。

リクエスト ヘッダー フィールド Access-Control-Allow-Headers は、プリフライト レスポンスの Access-Control-Allow-Headers によって許可されていません。

私はこれができると想定しました:

app.use(function(req, res, next) {
  res.header("Access-Control-Allow-Headers","*")
})

または同等のことをしましたが、これでは解決しないようです。もちろん、

app.use(function(req, res, next) {
  res.header("Access-Control-Allow-Headers","Access-Control-Allow-Headers")
})

まだ運がない。

ベストアンサー1

カスタム リクエスト ヘッダーを操作し始めると、CORS プリフライトが取得されます。これは、HTTPOPTIONS動詞を使用し、複数のヘッダーを含むリクエストです。そのうちの 1 つは、Access-Control-Request-Headersクライアントがリクエストに含めるヘッダーをリストするものです。

これを機能させるには、適切な CORS ヘッダーを使用して CORS プリフライトに応答する必要があります。その 1 つは です。そのヘッダーには、 ヘッダーに含まれるものと同じ値 (またはそれ以上)Access-Control-Allow-Headersが含まれている必要があります。Access-Control-Request-Headers

https://fetch.spec.whatwg.org/#http-cors-プロトコルこの設定についてさらに詳しく説明します。

おすすめ記事