【发布时间】:2018-12-04 12:34:41
【问题描述】:
我尝试了official documentation for CORS fix by serverless 和不同的解决方案,但问题仍然存在。
到目前为止,我所做的是,
1、在所有函数上设置 CORS 为真。
events:
- http:
path: /api/v1/user/login
method: post
cors: true
2、为 CORS 设置授权修复。
GatewayResponseDefault4XX:
Type: 'AWS::ApiGateway::GatewayResponse'
Properties:
ResponseParameters:
gatewayresponse.header.Access-Control-Allow-Origin: "'*'"
gatewayresponse.header.Access-Control-Allow-Headers: "'*'"
gatewayresponse.header.Access-Control-Allow-Methods: "'*'"
ResponseType: DEFAULT_4XX
RestApiId:
Ref: 'ApiGatewayRestApi'
3,在响应头中,我设置为,
headers: {
'Content-Type': 'application/json',
'Access-Control-Allow-Origin': '*',
"Access-Control-Allow-Headers": '*',
'Access-Control-Allow-Credentials': true,
}
仍然遇到基于 CORS 的问题
Error message:
Access to XMLHttpRequest at ’https://xxxxxx.execute-api.us-east-1.amazonaws.com/dev/api/v1/user/login' from origin ‘http://localhost:4200’ has
been blocked by CORS policy: Request header field Access-Control-Allow-Origin is not allowed by Access-Control-Allow-Headers in preflight response.
【问题讨论】:
-
这似乎是正确的。有时,当您的后端返回
internal server error时,会返回 CORS 错误。顺便说一句,您是否缺少在access-control-allow字段中添加OPTIONS? -
在您的前端 JavaScript 代码中,删除您添加的将 Access-Control-Allow-Origin 设置为请求标头的任何部分。
标签: node.js cors serverless-framework aws-serverless