使用缓存和CORS配置操作后,仅当响应来自缓存未命中时,命中端点才会返回所需的CORS头。 从缓存中获取响应时,标题丢失。
操作的配置是:
<policies>
<inbound>
<base />
<cache-lookup vary-by-developer="false" vary-by-developer-groups="false">
<vary-by-header>Accept</vary-by-header>
<vary-by-header>Accept-Charset</vary-by-header>
</cache-lookup>
<cors allow-credentials="true">
<allowed-origins>
<origin>http://example.com</origin>
</allowed-origins>
<allowed-methods>
<!-- allow any -->
<method>*</method>
</allowed-methods>
<allowed-headers>
<!-- allow any -->
<header>*</header>
</allowed-headers>
</cors>
</inbound>
<backend>
<base />
</backend>
<outbound>
<cache-store duration="300" />
<base />
</outbound>
<on-error>
<base />
</on-error>
</policies>
答案 0 :(得分:2)
政策中节点的顺序很重要。在cache-lookup
元素之前使用cors
元素会导致从缓存中获取响应,然后立即返回,而不会通过cors
指令添加标头。
解决方案是颠倒两个元素的顺序,使cors
出现在cache-lookup
之前,这意味着它始终被调用并将相关的标题添加到响应中,无论它是来自缓存还是不