【问题标题】:Adding Access-Control-Max-Age to Azure Functions将 Access-Control-Max-Age 添加到 Azure Functions
【发布时间】:2019-09-30 01:14:03
【问题描述】:

为了防止将 OPTIONS 预检请求发送到 Azure 函数,我想将 Access-Control-Max-Age 标头添加到 OPTIONS 响应中,以便浏览器在给定时间内缓存响应。

我尝试使用此 proxies.json 文件创建 Azure 代理函数:

{
    "proxies": {
        "AddCacheHeaderToCorsPreflightResponse": {
            "debug": true,
            "matchCondition": {
                "methods": [
                    "OPTIONS",
                    "GET"
                ],
                "route": "/api/{rest}"
            },
            "backendUri": "http://%WEBSITE_HOSTNAME%/api/{rest}",
            "responseOverrides": {
                "response.headers.Access-Control-Max-Age": "31536000"
            }
        }
    }
}

但这无法将响应标头添加到 OPTIONS 请求中,但出于测试目的,我可以获得 GET 响应以返回标头。 Azure 似乎不允许您为 OPTIONS 请求添加代理功能。

有没有办法在 Azure 中做到这一点?

【问题讨论】:

  • 你找到解决办法了吗?
  • @AlexanderMujirishvili 不,我从未找到解决此问题的方法。但是有可能现在有一个解决方案,因为我最初搜索解决方案已经一年多了,而且 Azure 在不断发展。

标签: azure azure-functions


【解决方案1】:

您需要确保您的function.jsonmethods 数组中包含OPTIONS,如下所示:

{
  "bindings": [
    {
      "authLevel": "anonymous",
      "name": "req",
      "type": "httpTrigger",
      "direction": "in",
      "methods": ["get", "post", "options"]
    }
  ]
}

当您配置您的 httptrigger 函数时,单击集成并选择OPTIONS 方法。或者,您可以完全删除 methods 数组并允许所有方法。

【讨论】:

  • 我可能错了 Joey Cai,但我相信 function.json 适用于普通的 Azure Functions,而不是 Azure 代理功能。我不确定这是否是您的建议。除非您建议代理运行的功能也必须绑定到“选项”,如果这是您的建议,那么我也尝试过。
  • 我建议你的函数也绑定到options
猜你喜欢
  • 2019-01-31
  • 2014-06-25
  • 2021-01-08
  • 2018-03-11
  • 2017-08-08
  • 1970-01-01
  • 2022-10-19
  • 1970-01-01
相关资源
最近更新 更多