为什么我的无服务器Lambda函数拒绝Cache-Control标头?

时间:2017-06-05 13:25:05

标签: amazon-web-services http-headers aws-lambda fine-uploader serverless-framework

我正在使用FineUploader将文件上传到S3。在使用DELETE功能时,我收到以下错误:

  

XMLHttpRequest无法加载   https://xxxxxxx.execute-api.us-east-1.amazonaws.com/prod/deleteS3File?   请求标头字段不允许使用Cache-Control   预检响应中的Access-Control-Allow-Headers。

lambda函数是使用令人敬畏的无服务器框架创建的,具有以下配置:

functions:
  deleteS3File:
    handler: handler.deleteS3File
    events:
      - http:
          path: deleteS3File
          method: POST
          integration: lambda
          cors: true
          response:
            headers:
              Access-Control-Allow-Origin: "*"

知道这个错误对Lambda函数意味着什么以及如何解决它?

1 个答案:

答案 0 :(得分:2)

您不支持的POST verb preflights an OPTIONS verb

因此,您需要为OPTIONS创建一个方法,该方法将返回状态代码200(成功)和预期的标题。

对于OPTIONS和POST,请尝试以下标题:

Access-Control-Allow-Origin: "*"
Access-Control-Allow-Methods: "GET, HEAD, OPTIONS, POST, PUT, DELETE"
Access-Control-Allow-Headers: "Access-Control-Allow-Headers, Cache-Control, Origin, Accept, X-Requested-With, Content-Type, Access-Control-Request-Method, Access-Control-Request-Headers"

您可以稍后调整标题以满足您的需要