我用两个 ASP.NET Web 应用程序、一个 MVC 应用程序和一个 Web API 创建了一个新的解决方案。
我想使用子域访问 api,api.hybridwebapp.com/values
所以我实现了 IHttpRouteConstraint 以确保request.RequestUri.Host == "api.mydomain.com"
所有 Api 路由。此答案中的更多详细信息。
然后我将以下行添加到我的主机文件中:
127.0.0.1 hybridwebapp.com api.hybridwebapp.com
在 IIS 管理器中,我创建了 2 个网站(每个项目一个)并为每个网站设置了适当的绑定(80 上的 hybridwebapp.com 和 80 上的 api.hybridwebapp.com)
在项目的 Web 属性中,我在每个网站的根目录下设置了一个本地 IIS 虚拟目录:
MVC 项目网址: http://hybridwebapp.com
Web API 项目网址:http://api.hybridwebapp.com
我在 MVC 应用程序中创建了一个单击处理程序以向 Web Api 发出跨域请求,尽管我从未在 Web Api 上实际配置任何 Cors 属性,但它成功地实现了它。
这是一种误导,因为这显然会在生产中失败。我该怎么做才能使这更现实..我实际上想调整 CORS 配置以具有更严格的范围,但是当它接受所有请求时我不能这样做,即使是那些应该失败的..