将访问控制 - 最大值添加到Azure函数中



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

我尝试使用此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"
            }
        }
    }
}

但这未能将响应标头添加到选项请求中,但是,出于测试目的,我可以得到响应以返回标头。看来Azure不允许您为选项请求添加代理函数。

有没有办法在Azure中进行此操作?

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

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

配置HTTPTRIGGER功能时,单击集成并选择OPTIONS方法。另外,您可以完全删除methods数组并允许所有方法。

最新更新