在同一端口上运行Angular和ASP.NET Web API

Cha*_*les 9 asp.net iis cors angular

我目前正在使用angular向运行ASP.NET的API服务器发出API调用。但是,对于角度开发,我有一个跨域问题,我正在使用localhost。在生产版本中,它们都将使用IIS在同一域下运行。

有没有一种方法可以在与ASP.NET相同的端口上运行angular应用程序?

PS:我也欢迎其他解决方案。

Vic*_*ina 5

我遇到了同样的问题,所以我在medium上找到了这篇文章,希望这对您有用。

编辑:实际上,我使用的解决方案来自该文章。

想法是您不能在同一端口上“发布” API和Angular应用程序,但是可以使用代理将Angular应用程序连接到另一个端口上的API。

更新:很抱歉在很久以前没有回答。

要解决cors问题(在这种情况下),您可以在ng serve命令中使用代理。

例如,在我的情况下,我使用了proxy.conf.json这样的文件:

{
  "/api/*": {
    "target": "http://localhost:3000",
    "secure": false,
    "pathRewrite": {"^/api" : ""}
  }
}
Run Code Online (Sandbox Code Playgroud)

此代码重写URL的每个请求/api/*http://localhost:3000您的API是听。

因此,举例来说,如果您提出了要求http://localhost:4200/api/users,则可以将其重定向/重写以http://localhost:3000/api/users解决cors问题。

现在,您运行角度应用程序的方式有所不同。

ng serve --proxy-config proxy.conf.json
Run Code Online (Sandbox Code Playgroud)