##症状
AWS API Gateway で作成した APIに GET通信したら、動かなくなったので、Chromeの検証画面を見ると、こんなエラーが出ていた。
Access to XMLHttpRequest at 'https://xxxxxxx.execute-api.ap-northeast-1.amazonaws.com/xxxxx/xxxxx'
from origin 'http://xxxxx.co.jp'
has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header
is present on the requested resource.
##解決方法
AWS API Gateway でCORSを有効にする。
セットアップ画面が出るが、ここは何を入力しても影響がないらしいので、入力項目がない mock にでもチェックして、保存。
以下追加する
・Access-Control-Allow-Headers
・Access-Control-Allow-Methods
・Access-Control-Allow-Origin
すでに先ほど入力したのが反映されている。
右端の鉛筆マークをクリックしてマッピングの値を入力する。
上から
・'Content-Type,X-Amz-Date,Authorization,X-Requested-With,X-Requested-By,X-Api-Key'
・'GET,POST'
・'*'
Access-Control-Allow-Origin のみ追加
APIをデプロイ
これで、エラーは出ず、APIにGET通信できた。
##P.S.
ただ、まだこんなエラーが残っている。
APIは正常に動作するけど気になる。(未解決)
Refused to get unsafe header "ETag"
##参考サイト
https://dev.classmethod.jp/articles/amazon-api-gateway-cors/