我使用middy来处理我的AWS lambda代码的中间件。下面是我的代码:
const middy = require('middy')
const middlewares = require('middy/middlewares')
const handlerWrapper = (handler) => middy((event, context, callback) => {
context.callbackWaitsForEmptyEventLoop = false;
let code = 200
context.send = (body) => callback(null,{
statusCode: code,
body: JSON.stringify(body)
})
context.status = (_code) => {
code = _code
return context
}
return handler(event, context ,callback)
}).use(middlewares.jsonBodyParser()).use(middlewares.cors())问题是,我的前端正在发送一个名为authorizationv2的自定义标头,当我的前端试图向我的AWS lambda代码发送请求时,浏览器将显示以下错误
Access to XMLHttpRequest at 'https://apiv2.website.com/data/list/' from origin 'http://admin.website.com' has been blocked by CORS policy: Request header field authorizationv2 is not allowed by Access-Control-Allow-Headers in preflight response.
所以我假设要解决这个问题,我需要middy来允许自定义的头authorizationv2。我不完全确定如何使用middy来做这件事。
发布于 2020-12-28 12:41:22
您需要在印前检查响应中添加自定义标头。有两种方法可以做到:
yourfunctionname:
handler: path/to/handler
events:
- http:
path: path/to/endpoint
method: get
cors:
origin: "*"
headers:
- Content-Type
- X-Amz-Date
- Authorization
- X-Api-Key
- X-Amz-Security-Token
- X-Amz-User-Agent
- <your-custom-header-goes-here>API手动方式:转到AWS API Gateway并找到您的
中添加自定义标头
https://stackoverflow.com/questions/64080820
复制相似问题