firebase主机上的Angular 9项目无法传递https请求

firebase主机上的Angular 9项目无法传递https请求,angular,https,proxy,firebase-hosting,Angular,Https,Proxy,Firebase Hosting,我已经在我的角度项目上使用了代理,如下所示 { "/api": { "target" : "https://<domain_name>/", "secure": false } } 但在我将其托管到firebase托管之后,每次POST请求都会出现以下错误 Http failure during parsing for https://<app_name>.firebaseapp.com/api/<route_name> 在分析的过

我已经在我的角度项目上使用了代理,如下所示

{
  "/api": {
    "target" : "https://<domain_name>/",
    "secure": false
  }
}
但在我将其托管到firebase托管之后,每次POST请求都会出现以下错误

Http failure during parsing for https://<app_name>.firebaseapp.com/api/<route_name>
在分析的过程中Http失败https://.firebaseapp.com/api/
在本地环境中运行Angular应用程序以重定向特定URL段时包含的代理配置文件是Angular dev服务器提供的一项功能

由于您使用的是firebase,firebase还提供了类似的重定向功能,可以在
firebase.json
文件中进行配置。由于您正在使用firebase进行部署,我假设您已经有了一个firebase.json文件。如果没有,请访问官方文档,将其安装到本地环境中。现在运行
firebase init
命令将生成一个基本的firebase.json文件

包括重定向选项,如下例所示:

firebase.json

"hosting": {
  // ... other configurations ...
  "redirects": [ {
    "source": "/api/:path*",
    "destination": "https://<gcp_domain_name>/:path",
    "type": 301
  }
}
“托管”:{
//…其他配置。。。
“重定向”:[{
“源”:“/api/:path*”,
“目的地”:“https://:path”,
“类型”:301
}
}
让我们分析一下刚才所做的。源属性将URL段作为Firebase执行重定向的值。
:path*
指定应捕获
/api
之后的任何URL段,并将其存储在变量
:path
中。现在在destination属性中,指定目标域,后跟
/:path
执行重定向。type属性指定Http响应代码301以表示永久重定向(在您的情况下)。您可以在重定向数组中添加多个重定向


有关Firebase中重定向配置的更多信息,请参阅Firebase官方文档。除了重定向,您还可以找到Firebase hosting中可以配置的所有选项。

您是使用env还是prod environment托管项目?您只需要在开发环境中配置代理,必须调用URL直接在生产环境中没有代理。谢谢@bjdose。这正是我犯的错误。由于使用代理,我为URL创建了一个文件,名为
/api/../../
way。这给了我构建错误。在我创建了另一个具有完整URL地址的文件并在生产环境中替换它之后。是否有任何错误正确的解决方法?我需要在开发和产品环境下运行系统。@Ravindusachinta您在本地的代理配置文件中添加的是什么?是firebase域还是其他什么?@Shravan系统后端托管在GCP服务器上。为此,firebase仅用于托管。为什么要使用代理?您可以使用prod和dev环境的完整路径。我认为实际上您不需要代理。
"hosting": {
  // ... other configurations ...
  "redirects": [ {
    "source": "/api/:path*",
    "destination": "https://<gcp_domain_name>/:path",
    "type": 301
  }
}