【发布时间】:2016-02-16 14:57:39
【问题描述】:
我有 2 个 Azure 网站(ASP.NET MVC 5 和 ASP.NET WebApi 2)。 MVC 网站有一些 jQuery,它试图将 CORS 请求发布到 WebApi。如果它直接连接到 WebApi,它就可以正常工作。但是,在尝试通过 API 管理连接时它不起作用。
我在 Chrome 中遇到的错误是:
XMLHttpRequest 无法加载 https://XXXXXX.azure-api.net/api/search。对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。 Origin 'https://YYYYYY.azurewebsites.net' 因此不允许访问。
我排除了 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>
有什么想法吗?
【问题讨论】:
-
在您的 allowed-headers/access-control-request-headersn 中有错字 有些人在让 CORS 使用错误输入的标头时遇到问题 stackoverflow.com/questions/26121824/… 这只是 SO 问题中的错字,还是在您原来的政策中?
-
干杯,我修正了政策上的类型,但没有任何区别。 :(
-
您是否还添加了授权标头?我在使用带有 COR 的 api 应用程序时遇到此错误。
-
这个运气好吗?我目前正在自己处理这个问题,并没有在网络上找到太多帮助。
-
这里也一样。我已经苦苦挣扎了一个星期,并尝试了我可以在网上搜索的所有内容。现在我完全得到了 CORS 的用途,但我的角度 localhost 应用程序仍然出现“不存在 'Access-Control-Allow-Origin' 标头”错误。非常令人沮丧。
标签: azure cors azure-api-management