dud*_*key 7 amazon-web-services cors angularjs aws-api-gateway
有没有人让AWS API Gateway与Angular.js前端一起工作?我有一个lambda函数,它通过API网关中的POST方法公开.我按照此文档的说明设置了标头:http: //docs.aws.amazon.com/apigateway/latest/developerguide/how-to-cors.html
我在Postman中进行了测试,效果很好.我没有做任何特别的事情,但是当我进行$http.post()呼叫时,我只No 'Access-Control-Allow-Origin'在所请求的资源上出现标题.http://localhost:9000因此不允许原点访问.答复HTTP status code 500.就是回应.
Api Gateway团队在这里.
希望到现在为止,您已经在控制台中检查了新的"启用CORS"功能.即使您的开发工作流程在控制台之外,您也可以快速设置测试API并查看控制台为您设置的标头配置,然后将这些配置复制到您的Swagger def或您提出的任何解决方案.
文档指南仍应适用于任何一种情况.您将需要3个标头:Access-Control-Allow-Methods,Access-Control-Allow-Origin和Access-Control-Allow-Headers.这些值取决于您的API.
如果您想向我发送您尝试调用的API资源,我可以从我们这边看一看.
我目前有一个通过API网关和Lambda运行的POST函数,该函数可以从带有CORS的Angular客户端访问。虽然我不知道您的配置是什么,但我可以共享所有相关设置,以希望您找到丢失的内容。目前,启用CORS相当麻烦(希望这是Amazon正在修复的问题),这需要在文档非常差的很多领域中采取许多小步骤。
我的资源有2种方法(OPTIONS和POST),我将共享每种方法的相关设置:
POST:
方法请求:没什么特别的。就我的端点而言,我的路由参数之一在“请求路径”下有一个选项。我没有使用查询字符串,因此URL查询字符串为空。HTTP请求标头也为空。
集成请求:
集成类型:Lambda映射模板:我有一个(应用程序/ json),带有一个模板,用于从请求主体传递适当的值并将参数路由到我的lambda函数。
方法响应:
展开200状态代码字段。为“ Access-Control-Allow-Origin”添加标题,然后单击复选标记按钮将其保存。您可能需要对其他状态码执行此操作。
集成响应:
展开200响应状态字段。在“标题映射”下,将映射值修改为包含“ *”。单引号是必需的。您可能需要对其他任何集成响应执行此操作。
选项:
方法请求:
没什么特别的,就像POST方法一样。
集成请求:
我将其设置为模拟集成。根据Amazon的说法,这无关紧要,所以我只是将其设置为模拟,因为我们真正需要做的就是用适当的标头响应200。没有映射模板。
方法响应:
展开200状态代码字段。添加以下3个响应标头,并将其与复选框一起保存:Access-Control-Allow-Headers,Access-Control-Allow-Methods,Access-Control-Allow-Origin。没有其他状态代码。
集成响应:
展开200响应状态字段。正则表达式为空(设置为默认值),并且此方法仅具有200响应。展开标题映射并将标题设置为以下映射值:
Access-Control-Allow-Headers: 'Content-Type,X-Amz-Date,Authorization,X-Requested-With'
Access-Control-Allow-Methods: 'GET,POST,OPTIONS'
Access-Control-Allow-Origin: '*'
Run Code Online (Sandbox Code Playgroud)
没有映射模板。
然后部署您的API。希望它现在允许CORS请求。我遇到了与您完全相同的问题,并且可以肯定地确定该问题缺少Access-Control-Allow-Headers中的X-Requested-With值。
| 归档时间: |
|
| 查看次数: |
9213 次 |
| 最近记录: |