在Angular 7中代理HTTP请求

时间:2019-02-10 15:10:17

标签: node.js angular

以前,我在Angular中使用“ proxy.conf.json”代理HTTP请求,效果很好。现在,我想使代理URL动态化,为此我创建了Angular Wiki(https://github.com/angular/angular-cli/blob/master/docs/documentation/stories/proxy.md)中提到的“ proxy.conf.js”,并添加了以下内容:

    const PROXY_CONFIG = [
      {
        context: [
          "/api/*"
        ],
        target: "https://example.com/",
        logLevel: "debug",
        secure: false,
        changeOrigin: true
      },
      {
        context: [
          "/login/*"
        ],
        target: "https://example1.com/",
        logLevel: "debug",
        secure: false,
        changeOrigin: true
      }
  ]
  module.exports = PROXY_CONFIG;

在“ package.json”中,我添加了以下内容:

"start-dev": "ng serve --proxy-config proxy.conf.js",

但是当我运行此脚本“ npm run start-dev”时,尽管显示“代理已创建”,但它不会从“ proxy.conf.js”文件中读取。

** Angular Live Development Server is listening on localhost:4200, open your browser on http://localhost:4200/ **
10% building 3/3 modules 0 active[HPM] Proxy created: [ '/login/*' ]  ->  https://example1.com/

URL仍未指向“ https://example.com/”发出http请求,而是指向“ http://localhost:4200/

enter image description here

有人可以让我知道我是否在这里错过任何事情。

1 个答案:

答案 0 :(得分:0)

在您的代理配置中,上下文模式为/login/*,但是根据控制台输出的实际请求只是/login,没有尾随部分。

因此,此代理规则可能不匹配,并且开发服务器没有与此相关的本地资源,因此使用404进行回答。

您可以更改上下文或为/login添加第二个条目。