3 回答
TA贡献1848条经验 获得超2个赞
看看我发现了什么!
在里面添加一些自定义标题<system.webServer>。
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Methods" value="GET, POST, OPTIONS, PUT, DELETE" />
</customHeaders>
</httpProtocol>
然后我可以进行CORS身份验证。
TA贡献2019条经验 获得超9个赞
我为基于AngularJS的Web客户端设置了许多试错法。
对我来说,下面的方法适用于ASP.NET WebApi 2.2和基于OAuth的服务。
安装
Microsoft.AspNet.WebApi.Cors
nuget包。安装
Microsoft.Owin.Cors
nuget包。在Startup.cs文件中添加
config.EnableCors(new EnableCorsAttribute("*", "*", "GET, POST, OPTIONS, PUT, DELETE"));
到上面的WebApiConfig.Register(config);
行。添加
app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
到Startup.Auth.cs文件。这必须在打电话之前完成IAppBuilder.UseWebApi
删除Blaise所做的任何xml设置。
我在这里发现了很多设置变化和组合stackoverflow或博客文章。所以,布莱斯的方法可能会或可能不会错。这只是我想的另一种设置。
TA贡献1856条经验 获得超5个赞
经过几个小时的搜索并查看了许多不同的解决方案,我已经设法按照下面的方式工作。
这种情况有很多原因。您很可能在错误的位置启用了CORS,或者启用了两次或根本没有启用CORS。
如果您正在使用Web API和Owin Token端点,那么您需要删除Web API方法中对CORS的所有引用并添加正确的owin方法,因为web api cors将无法与Token端点一起使用,而Owin cors将适用于两个Web API和Token auth端点让我们开始:
确保已安装Owin Cors软件包删除您拥有的任何行eg.config.EnableCors(); 从您的WebAPIconfig.cs文件
转到您的startup.cs文件,确保在任何其他配置运行之前执行Owin Cors。
app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll); ConfigureAuth(APP);
如果仍有问题请访问:Startup.Auth.cs并确保在ConfigureAuth方法中有以下内容(如果您的startup.cs文件正确,则不需要此项)
app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
- 3 回答
- 0 关注
- 626 浏览
添加回答
举报