通过 Amplify CLI 添加了一个 API,该 API 调用读取发电机表的 lambda。
它在 AWS 中部署后的第二天运行良好。今天早上它抛出 403 错误,没有进行任何更改:
获取 https://xxnxxtfxx.execute-api.eu-west-1.amazonaws.com/Prod/items 403
从源“ http://myproject-20181130113531--hostingbucket.s3-website-eu- ”访问“ https://xxnxxtfxx.execute-api.eu-west-1.amazonaws.com/Prod/items ”上的 XMLHttpRequest west-1.amazonaws.com '' 已被 CORS 策略阻止:请求的资源上不存在“Access-Control-Allow-Origin”标头。
观察/行动
确保在 API Gateway 上启用了 CORS,重新部署 API。
从 API Gateway 测试 API 成功,它正确调用了 Lambda 函数
- Amplify 服务确实创建了用户对象并保存在本地存储中
在开发人员工具下调用 OPTIONS 看起来也不错:
通用设置:
请求网址:https ://xxnxxtfxx.execute-api.eu-west-1.amazonaws.com/Prod/items
- 请求方法:选项
状态码:200
响应标头:
- 访问控制允许标头:内容类型、X-Amz-Date、授权、X-Api-Key、X-Amz-Security-Token
- 访问控制允许方法:DELETE、GET、HEAD、OPTIONS、PATCH、POST、PUT
- 访问控制允许来源:*`
想知道为什么 403 会出现 CORS 错误。有什么想法吗?让我感到困惑和害怕的是,在我醒来后几个小时没有任何变化,一切都失败了:-(