代码之家  ›  专栏  ›  技术社区  ›  Alex R

AWS ApiGateway:指定的映射表达式无效:访问控制允许源

  •  0
  • Alex R  · 技术社区  · 6 年前

    Lambada framework 并开始修改它以添加对CORS头的支持。Lambada使用API网关API[sic]来配置API网关。

    org.lambadaframework.aws.ApiGateway (为简洁起见省略了导入):

    enter image description here

    我成功地重建了框架。不幸的是,当我尝试使用它部署一个新的Lambda时,我得到:

    [错误]无法执行目标 lambadaframework:lambada maven插件:0.0.6-cors:deploy(默认) 在项目MyApp上:部署时出现异常:无效 :[指定的映射表达式无效:访问控制允许源] (服务:mazonApiGateway;状态代码:400;错误代码: 请求异常;请求ID:16509b8e-30eb-11e9-bc6b-f5d1416f03b5)

    什么会导致失败?!我已经手动执行了相同的步骤(通过ApiGateway控制台),在那里工作得很好。最后,我如何才能让CORS头启用?

    类似的问题,使用CLI: api gateway CORS setup

    0 回复  |  直到 6 年前
        1
  •  1
  •   Alex R    6 年前

    在这种情况下,设置集成响应参数时不需要设置集成响应模板。

    如果要使用集成响应修改响应,请将内容类型指定为键,将响应模板指定为值。 2

    假设您要修改内容类型的响应 "application/json" ,您的实现将如下:

    /* replace the existing getResponseTemplate() method with this */
    private Map<String, String> getResponseTemplate() {
        Map<String, String> params = new HashMap<String, String>();
        params.put(
            "application/json",
            "$input.json(\"$\")\n#set($context.responseOverride.header.Access-Control-Allow-Origin = \"*\")");
        return params;
    }