Asp.net

在同一個埠上執行 Angular 和 ASP.NET Web API

  • February 4, 2020

我目前正在使用 Angular 向執行 ASP.NET 的 API 伺服器發出 API 呼叫。但是,對於角度開發,我有一個跨域問題,我使用的是 localhost。在生產版本中,它們都將使用 IIS 在同一個域下執行。

有沒有辦法在與 ASP.NET 相同的埠上執行 Angular 應用程序?

PS:我也對解決此問題的其他替代方案持開放態度。

我遇到了同樣的問題,然後我在 medium 上找到了這篇文章,希望這對你有用。

編輯:實際上我使用的解決方案來自那篇文章。

這個想法是您不能在同一個埠上“發布”API 和 Angular 應用程序,但您可以使用代理從 Angular 應用程序連接到另一個埠上的 API。

更新:很抱歉很久以前沒有回答這個問題。

要處理 cors 問題(在這種情況下),您可以使用帶有ng serve命令的代理。

例如,就我而言,我使用了proxy.conf.json這樣的文件:

{
 "/api/*": {
   "target": "http://localhost:3000",
   "secure": false,
   "pathRewrite": {"^/api" : ""}
 }
}

此程式碼將每個請求的 url 重寫到/api/*http://localhost:3000的 api 正在偵聽的位置。

因此,為了說明,如果您以角度提出請求http://localhost:4200/api/users,它將被重定向/重寫以http://localhost:3000/api/users解決 cors 問題。

現在,您必須執行 Angular 應用程序的方式不同了。

ng serve --proxy-config proxy.conf.json

引用自:https://stackoverflow.com/questions/50753407