Amazon web services 在AWS Lambda响应头中添加访问控制公开头
我正在对lambda服务进行REST调用,并获得带有一些预期数据以及响应头信息的响应。我试图访问客户端中的一个头键值,但当我在javascript中读取头信息时,我只得到内容类型。在browser developer的网络选项卡中,我可以看到标题键值集。我试图在lambda的Cloudformation模板中为该特定密钥添加访问控制公开头,但在AWS上部署它时遇到另一个异常。不知道我错过了什么。任何帮助都将不胜感激。谢谢。请确保API网关路径中有选项方法:Amazon web services 在AWS Lambda响应头中添加访问控制公开头,amazon-web-services,aws-lambda,Amazon Web Services,Aws Lambda,我正在对lambda服务进行REST调用,并获得带有一些预期数据以及响应头信息的响应。我试图访问客户端中的一个头键值,但当我在javascript中读取头信息时,我只得到内容类型。在browser developer的网络选项卡中,我可以看到标题键值集。我试图在lambda的Cloudformation模板中为该特定密钥添加访问控制公开头,但在AWS上部署它时遇到另一个异常。不知道我错过了什么。任何帮助都将不胜感激。谢谢。请确保API网关路径中有选项方法: Api: Type: AWS::A
Api:
Type: AWS::ApiGateway::RestApi
Properties:
Name: "my-api"
Body:
swagger: "2.0"
info:
version: "2018-03-20T13:41:34Z"
basePath: "/"
schemes:
- "https"
paths:
/my-path:
options:
responses:
"200":
headers:
Access-Control-Allow-Origin:
type: "string"
Access-Control-Allow-Methods:
type: "string"
Access-Control-Allow-Headers:
type: "string"
x-amazon-apigateway-integration:
responses:
default:
statusCode: "200"
responseParameters:
method.response.header.Access-Control-Allow-Methods: "'GET,POST,PUT,DELETE,OPTIONS'"
method.response.header.Access-Control-Allow-Headers: "'Content-Type,X-Amz-Date,Authorization,x-api-key,x-amz-security-token,Auth'"
method.response.header.Access-Control-Allow-Origin: "'*'"
requestTemplates:
application/json: "{\"statusCode\":200}"
passthroughBehavior: when_no_match
type: mock
post:
...
从Lambda中,可以按如下方式设置标题:
exports.handler = async event => {
...
return {
isBase64Encoded: false,
statusCode: 200,
headers: {
'Access-Control-Expose-Headers': 'Content-Type,...',
'Access-Control-Allow-Origin': '*',
'Content-Type': 'application/json'
},
body: JSON.stringify(data)
}
}