My FEアプリケーションは異なるドメインのAPIを使用しています。私はそれがCORSを引き起こすはずであることを知っていますが、私が理解しているように、すべての要求に対してプリフライトを作成するべきではありません。プリフライトリクエストはすべてのメソッドで送信されます
docsによると、GET
メソッドのプリフライトリクエストはありません。
Cross-site requests are preflighted like this since they may have implications to
user data. In particular, a request is preflighted if:
- It uses methods other than GET, HEAD or POST.
Also, if POST is used to send request data with a Content-Type
other than application/x-www-form-urlencoded, multipart/form-data,
or text/plain, e.g. if the POST request sends an XML payload to the
server using application/xml or text/xml, then the request is preflighted.
- It sets custom headers in the request
(e.g. the request uses a header such as X-PINGOTHER)
しかし、私が送信していますすべてのリクエストは、プリフライト(OPTIONS)要求を持って、どんなにそれがGETまたはPOSTだ場合、私はそれ奇妙な(ドキュメントが言ったことによる)を見つけます。
私はいくつかのヘッダーを設定する(と私はwithCredentials: true
でそれを送信しています)が、私はそれが問題であることを表示されません。
headers.append('Access-Control-Allow-Origin', FRONTEND_URL);
headers.append('Accept', 'application/json');
headers.append('Content-Type', 'application/json');
headers.append('Authorization', this._generateApiKey());
headers.append('Language', this._languageISOCode);
私は何かが足りないのですか?
WithCredentialsそれがGET/POSTのためのプリフライトます意味カスタムヘッダーは、_that – Icepickle