首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用middy允许自定义标头

使用middy允许自定义标头
EN

Stack Overflow用户
提问于 2020-09-27 01:46:40
回答 1查看 551关注 0票数 0

我使用middy来处理我的AWS lambda代码的中间件。下面是我的代码:

代码语言:javascript
复制
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来做这件事。

EN

回答 1

Stack Overflow用户

发布于 2020-12-28 12:41:22

您需要在印前检查响应中添加自定义标头。有两种方法可以做到:

  • 如果您使用无服务器框架部署资源,请在函数定义中添加自定义头部,如下所示:

代码语言:javascript
复制
    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并找到您的

  • 资源。点击[操作] -> [启用CORS]。在页面上,您可以在字段"Access-Control-Allow-Headers".

中添加自定义标头

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64080820

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档