13

React アプリケーションがあり、aws からサーバーレスにアクセスしようとしています。しかし、私は以下のエラーがあります

No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'https://www.test.com' is therefore not allowed access. The response had HTTP status code 502.

エンドポイント URL はhttps://key.execute-api.ap-southeast-2.amazonaws.com/dev/samplefunctionです

serverless.yml の設定は

login:
    handler: login.login
    events:
      - http:
          path: login
          method: post
          cors:
            origin: 'https://admin.differentdomain.com'
            headers:
              - MY_CUSTOM_HEADER
              - Content-Type
              - X-Amz-Date
              - Authorization
              - X-Api-Key
              - X-Amz-Security-Token

CORS 構成を行う必要がある他の場所はありますか?

4

1 に答える 1

5

サーバーレスでの CORS セットアップについては、 https ://serverless.com/blog/cors-api-gateway-survival-guide/ で詳しく説明されています。

serverless.yml の構成 (プリフライト リクエスト用) に加えて、コードからヘッダーを返す必要がありAccess-Control-Allow-OriginますAccess-Control-Allow-Credentials。あなたの例と Node.js 実装では:

  return {
    statusCode: 200,
    headers: {
      'Access-Control-Allow-Origin': 'https://admin.differentdomain.com',
      'Access-Control-Allow-Credentials': true,
    },
    body: {},
  };

最初のヘッダーに「https」の部分を必ず含めてください。以前にこれにつまずいたことがあります。

于 2019-04-15T14:08:17.190 に答える