我已经开发了AngularJS应用程序和ASP.NET WebAPI 2,应用程序结构应该是网站层,数据访问层(实体FW),WebApi层 每个想法都很好。
问题是我的网站在http://localhost:8080
上运行,而WebAPI在http://localhost:1696/api/album
上运行。因此我无法通过角度服务访问数据。我正在寻找一个永久的解决方案。
如果我选择CORS,这是一个很好的解决方案吗?
答案 0 :(得分:1)
通常,您应该通过将配置添加到WebAPI配置或web.config来配置CORS。
对于WebAPI配置,您应指定以下内容:
config.EnableCors(new EnableCorsAttribute("*", "*", "*"));
在web.config
中,它应该如下所示:
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*"/>
</customHeaders>
</httpProtocol>
<system.webServer>
当然,这允许所有来源,因此您必须在您的情况下将其更改为localhost:8080
。请注意,不同的端口是不同的来源,因此仅指定localhost
是不够的,还应添加端口!
当转向生产时,您应该通过构建服务器配置正确的CORS位置,但这是一个完全不同的主题。