【发布时间】:2022-01-07 15:42:17
【问题描述】:
我有一个 Angular Web 应用程序和一个后端 Node JS API,它们都托管在 Azure 中的 Web 应用程序中。我使用邮递员来验证 API 是否正常运行。我的本地开发版本的 Angular 应用程序目前也指向实时 API,并且请求按预期工作。但是,已部署的 Angular App 在向 API 发出请求时仅返回 404。
我有以下proxy.confg.json:
{
"/api/*" : {
"target" : "https://{domain}.azurewebsites.net",
"pathRewrite": {
"^/api" : ""
},
"secure": false,
"changeOrigin": true,
"logLevel": "debug"
}
我在 angular.json 中配置了用于生产构建的代理,如下所示:
"serve": {
"builder": "@angular-devkit/build-angular:dev-server",
"configurations": {
"production": {
"browserTarget": "{project}:build:production",
"proxyConfig" : "proxy.conf.json"
}
当使用 proxy.confg.json 在本地运行时(“ng serve”和“ng serve --configuration production”,API 请求按预期工作。但是,实时应用程序在浏览器控制台中显示以下两个错误:
XHR GET https://{domain}.azurewebsites.net/api/getData
Object { headers: {…}, status: 404, statusText: "Not Found", url: "https://{domain}.azurewebsites.net/api/getData", ok: false, name: "HttpErrorResponse", message: "Http failure response for https://{domain}.azurewebsites.net/api/getData: 404 Not Found", error: "The resource you are looking for has been removed, had its name changed, or is temporarily unavailable." }
【问题讨论】:
-
proxy 旨在在运行开发服务器 (ng serve) 时用于代理调用。所以基本上代理配置(proxy.config.json)严格来说只是为了本地开发。
-
如果是这种情况,您应该如何将 HttpClient 指向外部后端 URL?使用代理配置是文档中提到的唯一方法
标签: node.js angular azure azure-web-app-service webapi