Angular配置proxy代理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Angular配置proxy代理相关的知识,希望对你有一定的参考价值。

参考技术A 前后端分离逐渐成为主流的开发方式,但同时也带来一些问题。在本地开发时,http请求通常需要从前端端口号转到后端端口号。处理跨域问题的方法有很多,如 CROS、 修改浏览器配置等,我比较喜欢proxy代理的方式。

假如Angular的请求为 http://localhost:4200/service/login ,经过proxy处理后,该请求变为 http://localhost:8080/login ,实现了自动跨域。
proxy配置项很多,可以参考 https://github.com/angular/angular-cli/blob/master/docs/documentation/stories/proxy.md

当我使用 ng build 时,proxy.conf.json 在 Angular 6 中不起作用

【中文标题】当我使用 ng build 时,proxy.conf.json 在 Angular 6 中不起作用【英文标题】:proxy.conf.json is not working in angular 6 when i use ng build 【发布时间】:2019-03-01 01:57:07 【问题描述】:

我正在尝试使用代理创建一个项目以连接到后端,但是当使用 ng build 生成项目时,代理配置不像使用 ng serve 那样工作。 要生成使用以下命令:

ng build --prod --base-href = / myproyect /

接下来我传递我拥有的配置文件: proxy.conf.json:


    "/api/*": 
      "target": "http://localhost:8080/cystock/",
      "secure": false,
      "pathRewrite": "^/api" : "",
      "changeOrigin": true,
      "logLevel": "debug"
    
  

global.ts:

export const GLOBAL = 
  production: true,
  url: 'api'//<-- 'API/' prefix needed for proxy configuration 
;

注意:这个想法是能够消费localhost服务,这是使用JAVA开发的,使用Spring作为框架

【问题讨论】:

proxy 配置旨在通过ng serve 运行开发服务器时代理调用。运行 ng build 后,您负责 Web 服务器及其配置 谢谢,问题是我不知道如何搜索运行配置,所以它可以工作 【参考方案1】:

正如@vikas 所说,代理配置严格用于开发。它可以让您在开发应用程序时轻松“模拟”您的端点,而无需多个配置文件。

proxy-config 的想法是您将生产 URL 代理到开发服务器(远程或本地),当您在没有代理的情况下构建代码时,它指向您的生产服务器。

要专门解决您的问题,只需将 /api 更改为您的生产端点,并将其映射到开发服务器。

【讨论】:

以上是关于Angular配置proxy代理的主要内容,如果未能解决你的问题,请参考以下文章

代理配置不适用于 Angular CLI

当我使用 ng build 时,proxy.conf.json 在 Angular 6 中不起作用

如何使用 proxy-config 将 Angular 2 应用程序部署到 HTTP 服务器

Angular HttpClient 无法代理

是否可以从 Angular proxy.config.js 文件访问本地存储?

Angular:如何设置代理以避免 CORS 错误