cors - 本地主机到 AWS Lambda 没有“Access-Control-Allow-Origin”标头
问题描述
我有一个本地服务器,用于测试未来远程托管服务器的通信及其与 Lambda 无服务器 API 的通信。我向 API 发出的请求是一个 GET 方法,我目前配置了以下内容来处理跨站点通信。
使用无服务器框架,我cors: true
在serverless.yml
文件中启用
此外,响应设置为返回以下内容:
response = {
"statusCode": 200,
"headers": {
'Access-Control-Allow-Headers': 'Content-Type',
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': 'GET'
},
"body": {
"message": "Authorization Successful!"
}
}
但是,从 ahttp://localhost:8000
到我托管的 API的链接单击会https://*id*.execute-api.us-east-1.amazonaws.com/prod/auth
传递一条错误消息:
Access to XMLHttpRequest at 'https://*id*.execute-api.us-east-1.amazonaws.com/prod/auth' from origin 'http://localhost:8000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
当我在 localhost:8000 上单击链接时获取此 API 时,是否应该向 GET 添加标头?我需要用这个更新任何东西AWS API Gateway
吗?从无服务器框架文档看来,它cors: true
会处理这个设置
解决方案
您是否部署了 API 网关?确保在 API Gateway 中选择 GET 方法并在操作下拉列表中选择部署。通过查看您是否能够从 Postman 访问 API 网关,而不是浏览器,可以揭穿 CORS 问题。由于您返回 Access-Control-Allow-Origin:"*" 浏览器将允许该请求。
推荐阅读
- hyperledger-fabric - 如何在 Hyperledger historian 中获取特定交易的历史记录
- scala - 可能失败的多个期货 - 返回成功和失败?
- java - 异常评估 SpringEL 表达式,spring guru 课程
- javascript - Uncaught (in promise) TypeError: _this3.setState is not a function
- javascript - Firestore 云功能删除文档
- ios - Xcode IONIC IOS App下架构x86_64的重复符号
- webpack - 控制文件不在顶部生成新的依赖块
- javascript - 重构多种方法使用的相似代码
- php - 如何使用php和jquery反转一个函数
- java - 不同的线程,访问相同的同步方法,返回意外结果