Javascript API网关无法启用CORS
当我尝试从我的react应用程序请求lambda支持的API(使用API网关,使用CLI和云开发工具包部署)时,我收到以下错误:Javascript API网关无法启用CORS,javascript,reactjs,amazon-web-services,aws-amplify,aws-cdk,Javascript,Reactjs,Amazon Web Services,Aws Amplify,Aws Cdk,当我尝试从我的react应用程序请求lambda支持的API(使用API网关,使用CLI和云开发工具包部署)时,我收到以下错误: Access to XMLHttpRequest at 'https://xxxxxxxxxx.execute-api.eu-west-1.amazonaws.com/prod/xxxxx' from origin 'http://localhost:3000' has been blocked by CORS policy: Response to prefligh
Access to XMLHttpRequest at 'https://xxxxxxxxxx.execute-api.eu-west-1.amazonaws.com/prod/xxxxx' from origin 'http://localhost:3000' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
GET https://xxxxxxxxxx.execute-api.eu-west-1.amazonaws.com/prod/xxxxx net::ERR_FAILED
使用CDK定义的我的API资源都被传递到中,就像explain一样,您需要在API网关中启用CORS,但是您还需要从Lambda返回一个访问控制允许来源
头,因为API网关不会自动将其添加到响应中
以下是我的Lambda返回的简单获取示例:
返回{
标题,
正文:JSON.stringify(response.Item),
状态代码:200
};
常量头={
“访问控制允许来源”:“*”,//CORS支持工作所需
“Access Control Allow Credentials”:true//cookie、带有HTTPS的授权头需要
}
这似乎是一个愚蠢的问题,但您是否在API网关中启用了CORS并重新部署了API?@danimal是的,我已经尝试过了,但问题是CDK应该已经解决了。您是否能够提供用于部署API的CDK代码片段?不,很遗憾,它仍然不起作用。所以这可能不是原因