无服务器/ AWS API网关CORS无法访问标头

时间:2017-06-07 17:43:59

标签: javascript aws-lambda aws-api-gateway axios serverless-framework

我的功能配置:

register:
  handler: handlers.register
  events:
    - http:
        integration: lambda-proxy
        path: register
        method: post
        cors: true

OPTIONS将这些标头返回给浏览器:

access-control-allow-credentials:false
access-control-allow-headers:Content-Type,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token,X-Amz-User-Agent
access-control-allow-methods:OPTIONS,POST
access-control-allow-origin:*

我的POST方法将这些标头返回到浏览器:

access-control-allow-credentials:true
access-control-allow-headers:Content-Type,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token
access-control-allow-methods:*
access-control-allow-origin:*
...
x-amzn-remapped-authorization:Bearer {MY_TOKEN}

我使用包含Authorization的{​​{1}}标头从我的处理程序发回回复。但是,我仍然无法使用axios从我的JS客户端访问Bearer {MY_TOKEN}。我回到JS的所有内容都是x-amzn-remapped-authorization

1 个答案:

答案 0 :(得分:2)

服务器(在本例中为API网关)在预检响应(来自OPTIONS)中返回

Access-Control-Allow-Headers ,以指定客户端可以使用哪些标头在提出请求时。

您在处理程序的响应中指定了

访问控制曝光标题,指明您希望浏览器向客户端展示的标头。

我在处理程序的响应中添加了'Access-Control-Expose-Headers': 'X-Amzn-Remapped-Authorization',现在一切正常。