Amazon web services AWS API网关的飞行前响应中的访问控制允许方法不允许方法PUT

Amazon web services AWS API网关的飞行前响应中的访问控制允许方法不允许方法PUT,amazon-web-services,swagger,aws-lambda,aws-api-gateway,Amazon Web Services,Swagger,Aws Lambda,Aws Api Gateway,我已经将API网关设置为指向lambda函数,设置为aws\U代理。我可以获取、发布、删除,但我正在尝试添加一个PUT,并且飞行前响应中的访问控制允许方法不允许我获取方法PUT 无法加载XMLHttpRequest。飞行前响应中的访问控制允许方法不允许方法PUT 我想我的CORS设置正确。这是路线的招摇过市的用户 '/picture/{picId}': options: summary: CORS support description: |

我已经将API网关设置为指向lambda函数,设置为aws\U代理。我可以获取、发布、删除,但我正在尝试添加一个PUT,并且飞行前响应中的访问控制允许方法不允许我获取
方法PUT

无法加载XMLHttpRequest。飞行前响应中的访问控制允许方法不允许方法PUT

我想我的CORS设置正确。这是路线的招摇过市的用户

  '/picture/{picId}':
    options:
      summary: CORS support
      description: |
        Enable CORS by returning correct headers
      consumes:
        - application/json
      produces:
        - application/json
      tags:
        - CORS
      x-amazon-apigateway-integration:
        type: mock
        requestTemplates:
          application/json: |
            {
              "statusCode" : 200
            }
        responses:
          "default":
            statusCode: "200"
            responseParameters:
              method.response.header.Access-Control-Allow-Headers : "'Content-Type,X-Amz-Date,Authorization,X-Api-Key'"
              method.response.header.Access-Control-Allow-Methods : "'*'"
              method.response.header.Access-Control-Allow-Origin : "'*'"
            responseTemplates:
              application/json: |
                {}
      parameters:
        - name: picId
          in: path
          required: true
          type: string
      responses:
        200:
          description: Default response for CORS method
          headers:
            Access-Control-Allow-Headers:
              type: "string"
            Access-Control-Allow-Methods:
              type: "string"
            Access-Control-Allow-Origin:
              type: "string"
    x-amazon-apigateway-any-method:
      produces:
      - "application/json"
      responses:
        200:
          description: "200 response"
          schema:
            $ref: "#/definitions/Empty"
      x-swagger-router-controller: main
      x-lambda-function: ../../swiki/build/picture
      x-amazon-apigateway-integration:
        type: aws_proxy
        httpMethod: POST
        uri: arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/@@LambdaFunctionPicture/invocations
        credentials: @@APIGatewayExecutionRole
如您所见,我已配置了
访问控制允许标头
访问控制允许方法
访问控制允许原点


为什么我不能发出PUT请求?

目前,大多数浏览器似乎不支持在允许的方法上设置“*”。因此,必须手动显式设置这些方法,以实现浏览器支持

Access-Control-Allow-Methods: POST, PUT, GET, OPTIONS

兼容性说明

中提到的通配符值(*) 最新规范尚未在浏览器中实现:

铬:第615313期

Firefox:bug 1309358

伺服:第13283期