Angular 8-为HTTP API调用设置代理

Angular 8-为HTTP API调用设置代理,angular,Angular,使用curl发出HTTP Rest API请求时,可以设置代理URL 在进行API调用时,http客户端是否提供设置代理的选项 我看了,但没有看到任何这样的设置 更新: 我有一个CI/CD环境,在这个环境中,会发生角度构建,并将构建上载到AWS中的S3存储桶。我相信我不能在AWS中手动运行ng serve以将代理配置文件作为参数传递。因此,我正在寻找一种解决方案,我们可以向Angular Http客户机发送一个头或者类似的东西,就像curl所做的那样。这是非常简单的。使用ng serve时,如果

使用curl发出HTTP Rest API请求时,可以设置代理URL

在进行API调用时,http客户端是否提供设置代理的选项

我看了,但没有看到任何这样的设置

更新:


我有一个CI/CD环境,在这个环境中,会发生角度构建,并将构建上载到AWS中的S3存储桶。我相信我不能在AWS中手动运行ng serve以将代理配置文件作为参数传递。因此,我正在寻找一种解决方案,我们可以向Angular Http客户机发送一个头或者类似的东西,就像curl所做的那样。

这是非常简单的。使用
ng serve
时,如果与
package.json
位于同一目录中的文件名为
proxy.conf.json
,则webpack服务器将配置为代理文件中定义的请求。下面定义了一个代理配置示例

要使用不同的文件名,只需将
--proxy config myfile.conf.json
作为参数传入
ng serve
。甚至可以在
package.json
文件中将其配置为npm脚本

示例proxy.conf.json

{
  "/api": {
    "target": "http://localhost:8080",
    "secure": false,
    "logLevel": "debug",
    "changeOrigin": true
  }
}

这是相当琐碎的。使用
ng serve
时,如果与
package.json
位于同一目录中的文件名为
proxy.conf.json
,则webpack服务器将配置为代理文件中定义的请求。下面定义了一个代理配置示例

要使用不同的文件名,只需将
--proxy config myfile.conf.json
作为参数传入
ng serve
。甚至可以在
package.json
文件中将其配置为npm脚本

示例proxy.conf.json

{
  "/api": {
    "target": "http://localhost:8080",
    "secure": false,
    "logLevel": "debug",
    "changeOrigin": true
  }
}

代理配置是一个只与开发相关的东西。构建和部署应用程序后,将不使用代理。ng serve运行一个本地开发服务器,代理配置为,这样您就可以将api调用重定向到不同的端口,这样您的Angular应用程序就可以访问在不同端口上运行的开发api,而不会出现跨源请求问题。在生产环境中部署应用程序时,Angular应用程序和api需要托管在同一域和端口上。代理配置永远不适用于prod,它只是一个开发概念。

代理配置只是一个与开发相关的东西。构建和部署应用程序后,将不使用代理。ng serve运行一个本地开发服务器,代理配置为,这样您就可以将api调用重定向到不同的端口,这样您的Angular应用程序就可以访问在不同端口上运行的开发api,而不会出现跨源请求问题。在生产环境中部署应用程序时,Angular应用程序和api需要托管在同一域和端口上。Proxy config不适用于prod,它只是一个开发概念。

请阅读本文。这是一个很好的资源,不要太刻薄,但你需要花更多的时间与谷歌。请看,其中一个包含我下面的简短回答。请阅读此内容的可能副本。这是一个很好的资源,不要太刻薄,但你需要花更多的时间与谷歌。请看,其中一个包含我下面的简短回答。可能与Thank you重复,但这种方法在CI/CD环境中不起作用,我们需要在AWS中构建一次并将代码部署到S3存储桶中。因为,我们不能在那里发球。因此,我在寻找一个解决方案,我们可以向Angular Http客户端发送一个头或者类似的东西,就像curl所做的那样。@Jake-我不知道你有什么样的场景,但是S3存储桶提供静态文件。S3上没有代理。Webpack服务器代理仅用于本地开发。您的构建过程不应该依赖于运行时配置。谢谢,但是这种方法在CI/CD环境中不起作用,我们需要构建一次并将代码部署到AWS中的S3存储桶中。因为,我们不能在那里发球。因此,我在寻找一个解决方案,我们可以向Angular Http客户端发送一个头或者类似的东西,就像curl所做的那样。@Jake-我不知道你有什么样的场景,但是S3存储桶提供静态文件。S3上没有代理。Webpack服务器代理仅用于本地开发。生成过程不应依赖于运行时配置。