Sea*_*ean 1 asp.net-core angular
如何让 ASP.NET Core 6 Angular 应用程序在 API 路由上使用前缀?
我使用模板创建一个全新的项目ASP.NET Core with Angular。然后我做了两个小改变:
api/前缀:api/前缀:结果是 404:
发生此行为的原因是 ASP.NET Core 中发生了更改,让前端开发服务器代理对 ASP.NET Core 的请求,而不是相反(这是 ASP.NET Core 早期版本中的方法)。换句话说,Angular 开发服务器代理对 ASP.NET Core 的 API 数据请求,而在以前的 ASP.NET 版本中,IIS Express 会将 Angular 请求代理到 Angular SPA 服务器。
文件夹中ClientApp现在有一个proxy.conf.js文件。将前缀添加api/到此文件中意味着 Angular SPA 开发服务器现在知道对该前缀 URL 的请求应传递到 .NET 服务器:
您可以使用通配符,例如"/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文件似乎是前进的方向。
| 归档时间: |
|
| 查看次数: |
2468 次 |
| 最近记录: |