如何讓 ASP.NET Core 6 Angular 應用程式在 API 路由上使用前綴?
ASP.NET Core with Angular我使用模板創建了一個全新的專案。然后我做了兩個小改動:
- 更改 Angular 組件以使用
api/前綴:

- 更改 WebApi 控制器以使用
api/前綴:

結果是 404:

uj5u.com熱心網友回復:
解釋:
發生這種行為的原因是 ASP.NET Core 中的更改讓前端開發服務器代理請求到 ASP.NET Core,而不是相反(這是以前版本的 ASP.NET Core 中的方法)。換句話說,Angular 開發服務器代理對 ASP.NET Core 的(例如)API 資料的請求,而在以前的 ASP.NET 版本中,IIS Express 將代理 Angular 請求到 Angular SPA 服務器。
請參閱:

您可以使用通配符,例如"/api/**"
有用的知識:
由于這可能對相關問題有用,因此proxy.conf.js檔案中沒有前綴,對 HTTP 請求的實際回應如下所示:

這不是來自 ASP.NET Core 代碼的回應;這是來自 Angular 的回應——即該請求沒有通過 Angular 代理服務器傳遞到 IIS Express。
此外,知道 SPA 代理服務器是使用Microsoft.AspNetCore.SpaProxy包啟動的,這很有用。我已經Program.cs完全更改了我的啟動代碼以洗掉 Angular/SPA 邏輯,但我仍然在啟動時獲得 SPA 代理服務器,以及來自 API 路由的相同回應代碼。這是因為在 中launchsettings.json,有這些對SpaProxy包的參考:

因此,除非您洗掉launchSettings.json檔案中的這兩個參考,否則 SPA 代理將繼續啟動。如果要完全洗掉 Spa 代理,請洗掉這些參考。然后,如果需要,您可以在不涉及 SPA 代理的情況下除錯正在發生的事情。但是,如果您想繼續使用新SPA proxy to ASP.NET Core方法,該proxy.conf.js檔案似乎是前進的方向。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/486774.html
上一篇:查找字典物件中存在的一些值
