将Access-Control-Max-Age添加到Azure函数

时间:2019-05-13 05:29:00

标签: azure azure-functions

为了防止将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中是否可以做到这一点?

1 个答案:

答案 0 :(得分:0)

您需要确保function.jsonOPTIONS数组中包含methods,如下所示:

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

配置httptrigger函数时,单击“积分”并选择OPTIONS方法。另外,您可以完全删除methods数组并允许所有方法。