Asp.net
在同一個埠上執行 Angular 和 ASP.NET Web API
我目前正在使用 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