AWS API Gateway CORS飞行前检查失败

Kim*_*ais 6 amazon-web-services cors aws-api-gateway

我正在使用Zappa来部署我的应用程序,启用了cors,当按下API Gateway"OPTIONS"资源中的选项上的"test"按钮时,一切似乎都正常.

但是,当我尝试进行CORS飞行前检查时,我在使用正文{"message": "Internal server error"}和CloudWatch日志时出现500错误Execution failed due to configuration error: Unable to transform request

编辑:

这就是配置的样子:在此输入图像描述

编辑2 我尝试通过via zappa_settings.json("cors": true)和手动点击AWS控制台中的enable cors来启用CORS

有没有人有任何指针如何进一步调试?

JP.*_*let 7

有没有人有任何指针如何进一步调试?

我有一些东西:

在你zappa_settings.json,你没有这个选项 binary_support: false,对吗?

因为:

你可以留下cors:true但是设置binary_support:false - 它们似乎没有很好地一起玩.

(这里有同样的问题并解决了删除二进制支持)

如果不是,你可以试试这个:

  • 在OPTIONS方法中,选择集成类型"mock"
  • 对于资源的每个方法
  • 转到响应方法
  • 添加应支持的所有响应方法(即200,500等)
  • 对于每个响应代码集,响应标头为:

    X-要求,随着

    访问控制允许报头

    访问控制允许来源

    访问控制允许的方法

  • 转到Integration Response,选择一个已创建的响应代码,然后选择Header Mappings

  • 插入标题的默认值示例:

    X-Requested-With:'*'

    Access-Control-Allow-Headers:'Content-Type,X-Amz-Date,Authorization,X-Api-Key,x-requested-with'

    Access-Control-Allow-Origin:'*'

    访问控制允许方法:'POST,GET,OPTIONS'

  • 必须对每个方法重复此操作,包括新创建的OPTIONS

  • 将API部署到阶段
  • 使用http://client.cors-api.appspot.com/client检查已成功启用CORS请求

(从这里提取).

我假设你已经检查了这个:http://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-cors.html ...

我也发现这个被考虑,引自这里:

还应该注意的是,简单地在API网关层启用CORS是必要的,但对于想要针对经过IAM身份验证(并且可能使用其他API网关级别身份验证器进行身份验证)的Zappa API执行CORS请求的应用程序来说是不够的.应用程序本身仍然需要使用适当的CORS相关标头进行响应,但如果API网关阻止了飞行前请求,则无法获得此机会.

希望对你有所帮助!