- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有 2 个 Azure 网站(ASP.NET MVC 5 和 ASP.NET WebApi 2)。 MVC 网站有一些 jQuery 尝试将 CORS 请求发布到 WebApi。如果直接连接到 WebApi,它就可以正常工作。但是,当尝试通过 API 管理进行连接时,它不起作用。
我在 Chrome 中遇到的错误是:
XMLHttpRequest cannot load https://XXXXXX.azure-api.net/api/search. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'https://YYYYYY.azurewebsites.net' is therefore not allowed access.
我排除了 WebApi 配置的问题,因为正如我所说,它可以直接工作。
以下是我的政策:
<policies>
<inbound>
<cors>
<allowed-origins>
<origin>*</origin>
<!-- allow any -->
</allowed-origins>
<allowed-headers>
<header>accept</header>
<header>accept-encoding</header>
<header>access-control-request-headers</header>
<header>access-control-request-method</header>
<header>connection</header>
<header>content-type</header>
<header>host</header>
<header>origin</header>
<header>referer</header>
<header>user-agent</header>
</allowed-headers>
<expose-headers>
<header>access-control-allow-headers</header>
<header>access-control-allow-origin</header>
<header>cache-control</header>
<header>content-length</header>
<header>date</header>
<header>expires</header>
<header>pragma</header>
<header>server</header>
<header>set-cookie</header>
<header>x-aspnet-version</header>
<header>x-powered-by</header>
</expose-headers>
</cors>
</inbound>
<backend>
<base />
</backend>
<outbound>
<base />
</outbound>
</policies>
有什么想法吗?
最佳答案
CORS 策略的预期用途是当您的后端不支持 CORS 的情况。在这种情况下,您可以放入此策略,它将回复 OPTION 请求,而不将它们转发到您的后端。您可以使用此策略来决定要处理 CORS 的来源/ header /方法。
或者,如果您的后端已经支持 CORS,并且您认为在 APIM 级别处理 CORS 流没有任何好处,您可以只代理整个流。为此,您应该删除 CORS 策略,并使用 OPTIONS 方法在 APIM 中的 API 中创建一个新操作,以便 OPTIONS 请求正常转发到后端。
关于azure - CORS 预检请求不适用于 Azure API 管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33719657/
我是一名优秀的程序员,十分优秀!