前提・実現したいこと
API Gateway で CORS を実現したいです。
ローカル環境の Vue で作成したページから、API Gateway でファイルを POST したいです。
発生している問題・エラーメッセージ
API Gateway で CORS は有効化しています。
Preflight リクエストが送信されて、そのレスポンスで access-control-allow-origin としてローカルのアドレスが許可されているのは確認しました。
しかし、実際の POST リクエストが発生しないです。
この原因がわかりません。
以下、Chrome(Version 79.0.3945.79) のコンソールに表示されていたエラーメッセージです
Error: Request has been terminated Possible causes: the network is offline, Origin is not allowed by Access-Control-Allow-Origin, the page is being unloaded, etc.
ネットワークタブを見ると、OPTIONS メソッドで Preflight リクエストが送信され、レスポンスを200で受け取っていることは確認できました。
また、レスポンスで Origin として許可されていることも確認しました。
ヘッダ
- リクエストヘッダ
:authority: xxxxxxxx.execute-api.ap-northeast-1.amazonaws.com :method: OPTIONS :path: /dev/upload :scheme: https accept: */* accept-encoding: gzip, deflate, br accept-language: en-US,en;q=0.9,ja;q=0.8 access-control-request-headers: access-control-allow-origin,content-type access-control-request-method: POST origin: http://192.168.0.20:8080 referer: http://192.168.0.20:8080/ sec-fetch-mode: cors sec-fetch-site: cross-site user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.79 Safari/537.36
- レスポンスヘッダ
access-control-allow-headers: Content-Type,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token access-control-allow-methods: DELETE,GET,HEAD,OPTIONS,PATCH,POST,PUT access-control-allow-origin: * content-length: 0 content-type: application/json date: Fri, 13 Dec 2019 04:02:02 GMT status: 200 via: 1.1 7408587aefcdfb48b378f51605d1bdd3.cloudfront.net (CloudFront) x-amz-apigw-id: En8BNGXcNjMFtWg= x-amz-cf-id: VOC8WZn8sPnsN5H1FJCyI4gqpFRgwgbr9QGQkny9KZtV0Xxujyjdxg== x-amz-cf-pop: NRT51 x-amzn-requestid: 3a1a7d61-6d46-4011-8b73-42bed4eb6ebf x-cache: Miss from cloudfront
試したこと
CURL コマンドで OPTIONS を叩くと、以下が返ってきます。
ちゃんと設定できているように思います。
curl -i -X OPTIONS https://XXXXXXXX.execute-api.ap-northeast-1.amazonaws.com/dev/upload HTTP/2 200 content-type: application/json content-length: 0 date: Fri, 13 Dec 2019 03:59:36 GMT x-amzn-requestid: eeaa4573-ab92-4c03-aef4-dd3252233c75 access-control-allow-origin: * access-control-allow-headers: Content-Type,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token x-amz-apigw-id: XXXXXXXXXXX access-control-allow-methods: DELETE,GET,HEAD,OPTIONS,PATCH,POST,PUT x-cache: Miss from cloudfront via: 1.1 xxxxxxxxxxxxxxxxxxxxxxxxxx.cloudfront.net (CloudFront) x-amz-cf-pop: NRT51-C2 x-amz-cf-id: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
回答1件
あなたの回答
tips
プレビュー