在Azure管理中,我试图修改API中单个路由的CORS策略。我遇到的问题是,我不知道如何修改基本策略。Azure似乎只是简单地用新的策略来覆盖它。
简单的基本政策:
<policies>
<inbound>
<cross-domain>
<cross-domain-policy>
<allow-http-request-headers-from domain="*" headers="*" />
</cross-domain-policy>
</cross-domain>
<cors>
<allowed-origins>
<origin>*</origin>
</allowed-origins>
<allowed-methods>
<method>*</method>
</allowed-methods>
<allowed-headers>
<header>*</header>
</allowed-headers>
</cors>
</inbound>
<backend>
<forward-request />
</backend>
<outbound>
</outbound>
</policies>在特定的路由中,我希望修改<cors>部分以包含更多的策略,如下所示:
<policies>
<inbound>
<base />
<cors>
<expose-headers>
<header>Content-Disposition</header>
</expose-headers>
</cors>
</inbound>
</policies>然而,Azure想要用这个覆盖基本CORS策略。我在文档中找不到任何关于如何修改/合并策略而不是批量替换策略的内容。
那么,我将如何继承基本策略,但只需添加这一额外的<expose-headers>策略?
发布于 2017-04-21 22:28:27
目前这是不可能的。一旦定义了请求范围(产品、API和操作匹配),策略的工作方式就是从上层用策略替换所有标记。由此产生的有效策略只是一个连续执行的语句的平面列表。从这个意义上说,您无法在较低级别上控制父级策略。
但是,在执行父策略之前,始终可以插入一些内容。为此,只需将另一个完全指定的CORS策略放在标记之前,在产生的策略中,它将首先执行。
每个有效策略都有多个CORS策略是可以的,它们将被一个接一个地执行,并且第一个能够处理CORS调用(起源、方法、头匹配)的策略将采取行动。
https://stackoverflow.com/questions/43551713
复制相似问题