![](/img/trans.png)
[英]How to enable CORS policy in AWS between API Gateway and React app?
[英]"Enable CORS" in AWS API Gateway resource?
我的 AWS API 网关有问题。 我正在使用 Angular 4 开发一个 web 应用程序(使用 TypeScript 语言),但是如果我从前端调用 PUT 方法,则会出现以下错误消息:
Method PUT is not allowed by Access-Control-Allow-Methods in preflight response.
这很奇怪,因为在 AWS 控制台中,PUT 方法完美运行(我在部署后的一个阶段直接从 API 网关控制台进行了许多测试,一切正常)。 如果我 go 到“操作/启用 CORS”所有方法都有检查,包括 PUT 方法,我没有解释 API 网关到底有什么问题。
如果在 API 网关中一切正常,为什么会出现此错误? 有没有办法改变这些CORS?
我记得前段时间被同样的问题困扰时......
使用 Lambda 或 HTTP 代理集成时,您至少需要在 lambda 的响应中指定Access-Control-Allow-Origin
标头。 您可能指定了额外的(目前手头没有任何代码)。 我确实记得这条消息有点误导,从管理控制台进行的测试之所以有效,是因为它并没有真正使用 CORS,因为控制台执行测试的方式。
看看最后一部分: 为 REST API 资源启用 CORS
exports.handler = async (event) => {
const response = {
statusCode: 200,
headers: {
"Access-Control-Allow-Headers" : "Content-Type",
"Access-Control-Allow-Origin": "https://www.example.com",
"Access-Control-Allow-Methods": "OPTIONS,POST,GET"
},
body: JSON.stringify('Hello from Lambda!'),
};
return response;
};
您需要将Access-Control-Allow-Origin
替换为客户端应用程序使用的主机名。 作为快速测试使用*
,但不要投入生产,因为这违背了 CORS 的目的。
请按照以下步骤操作,
创建 OPTIONS 后启用如下所示的 CORS
来源:- https://forums.aws.amazon.com/thread.jspa?messageID=644489
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.