为了防止将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中是否可以做到这一点?
答案 0 :(得分:0)
您需要确保function.json
在OPTIONS
数组中包含methods
,如下所示:
{
"bindings": [
{
"authLevel": "anonymous",
"name": "req",
"type": "httpTrigger",
"direction": "in",
"methods": ["get", "post", "options"]
}
]
}
配置httptrigger函数时,单击“积分”并选择OPTIONS
方法。另外,您可以完全删除methods
数组并允许所有方法。