工作AngularJS& Web api 2端口不同问题

时间:2017-08-24 07:47:54

标签: asp.net angularjs asp.net-web-api

我已经开发了AngularJS应用程序和ASP.NET WebAPI 2,应用程序结构应该是网站层,数据访问层(实体FW),WebApi层 每个想法都很好。

问题是我的网站在http://localhost:8080上运行,而WebAPI在http://localhost:1696/api/album上运行。因此我无法通过角度服务访问数据。我正在寻找一个永久的解决方案。

如果我选择CORS,这是一个很好的解决方案吗?

1 个答案:

答案 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位置,但这是一个完全不同的主题。