为了防止选项发送到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.json
在methods
数组中包含OPTIONS
,例如:
{
"bindings": [
{
"authLevel": "anonymous",
"name": "req",
"type": "httpTrigger",
"direction": "in",
"methods": ["get", "post", "options"]
}
]
}
配置HTTPTRIGGER功能时,单击集成并选择OPTIONS
方法。另外,您可以完全删除methods
数组并允许所有方法。