Angularjs CORS和新的ASPNET5

Angularjs CORS和新的ASPNET5,angularjs,asp.net-web-api,cors,Angularjs,Asp.net Web Api,Cors,我试图通过angular和工厂内的$http模块向我的aspnet Web Api发出请求,如: http.get('http://localhost:5000/api/todo').success(function(r){ return r; }).error(function(err){ return err; }); 但是我得到了以下错误: XMLHttpRequest cannot load http://localhost:5000/api/todo. No 'Access-Cont

我试图通过angular和工厂内的$http模块向我的aspnet Web Api发出请求,如:

http.get('http://localhost:5000/api/todo').success(function(r){ return r; }).error(function(err){ return err; });
但是我得到了以下错误:

XMLHttpRequest cannot load http://localhost:5000/api/todo. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin http://localhost:9000/ is therefore not allowed access.
我知道请求到达了服务器,因为我在请求资源时记录了一条消息

我发现我必须在服务器上实现CORS。我添加了CORS中间件并配置了启动文件,但没有任何更改

我认为中间件应该将配置好的头添加到响应中,但事实并非如此。


?这方面的问题是什么?好的,经过一个小的研究。我发现.WithOriginates(“…”)方法没有添加访问控制Allow Originary头,我不知道它是上下文还是什么,我只是对此做了一个解释。现在我用.AllowAnyOrigin()替换它

还向我的控制器类添加了一个属性。

[EnableCorsAttribute(“AllowAll”)]

当然,您需要添加EnableCorsAttribute类所在的名称空间。

使用Microsoft.AspNet.Cors.Core;


这对我很有用,我希望它能帮助你,谢谢你的评论。

将UseCors移到UseMvc之上,中间件的顺序很重要。如果你想对启用cors的路由进行更精细的控制,也可以在MVC中使用cors过滤器。另外,请确保asp.net正在处理选项请求,而不是iis。