【发布时间】:2014-05-11 19:25:24
【问题描述】:
我在托管通过 2012 R2 中运行的 IIS 8.5 托管的启用 CORS 的 ASP.NET (2.1) Web API 时遇到问题。我使用以下代码在我的 Web API 配置中启用了 CORS:
config.EnableCors(new EnableCorsAttribute("*", "*", "*"));
在使用 IIS express 的开发机器上运行时,angular.js 客户端可以正确调用 web api。浏览器首先发送 OPTIONS,然后发送 GET、POST、PUT 或 DELETE。没有任何问题。
然后我在 IIS 8.5 中创建了新网站并将我的 web api 应用程序部署到其中。首先,我遇到了浏览器为每个 OPTIONS 请求收到 HTTP 405 的问题。好的,我为我的网站启用了 OPTIONSVerbHandler,浏览器开始收到 200 OK。但是它错过了所有需要的 CORS 标头。我可以通过在每个 Web 请求中手动添加自定义标头来克服这一点。
这让我想知道为什么我需要在不同的地方定义 CORS 设置; web api 应用程序、处理程序映射和自定义标头。还是我在这里做错了什么?
【问题讨论】:
标签: angularjs iis asp.net-web-api