HTTPApi + 无服务器框架 + API 网关 CORS 不起作用

Wra*_*udu 6 aws-lambda aws-api-gateway serverless-framework aws-http-api

我有一个使用无服务器框架创建的 HTTPApi API 网关。但对于某些路线,CORS 不起作用。

provider:
  name: aws
  runtime: nodejs12.x
  stage: dev
  region: us-west-2
  timeout: 29
  httpApi:
    cors:
      allowedOrigins:
        - '*'
      allowedMethods:
        - GET
        - OPTIONS
        - POST
        - PUT
        - DELETE
      allowedHeaders:
        - Content-Type
        - X-Amz-Date
        - Authorization
        - X-Api-Key
        - X-Amz-Security-Token
        - X-Amz-User-Agent
        - X-Transaction-Key
        - Access-Control-Allow-Origin
Run Code Online (Sandbox Code Playgroud)

我尝试cors:true在提供商上设置该选项,但仍然不起作用。这是所有路由返回的响应,无论是 4xx 还是 2xx 代码。

return {
    statusCode: StatusCode,
    headers: {
      "Content-Type": "application/json",
      "Access-Control-Allow-Origin": "*",
      "Access-Control-Allow-Credentials" : true,
      "Access-Control-Allow-Headers" : "*",
      "Access-Control-Allow-Methods": "OPTIONS,POST,GET,PUT,DELETE"
    },
    body: JSON.stringify(Res, null, 2),
  };
Run Code Online (Sandbox Code Playgroud)

如果我检查控制台,我可以看到确实应用了这些选项 但是,某些路由实际上有效 ,而 另一些则无效,无效的路由具有X-Transaction-Key标头并且OPTIONS不返回access-control-allow-headers: authorization,content-type,x-amz-date,x-amz-security-token,x-amz-user-agent,x-api-key,x-transaction-key标头

我缺少什么?提前致谢

小智 -2

您是否尝试过修复函数事件中的“cors: true”值,就像在无服务器中使用 cors一样?