Angular-CLI代理到后端不起作用

By simon at 2018-02-28 • 0人收藏 • 122人看过

https://github.com/angular/angular-cli#proxy-to-backend这里是一个 指导如何对后端进行代理。我做了一切一步一步来 仍然请求不被代理。 8080 - 我的Express后端4200 - 我的Angular2前端 在Angular2项目中,我有e文件proxy.cons.json,内容如下:

{
  "/api": {
    "target": "http://localhost:8080",
    "secure": false
  }
}
在Angular2 package.json中,我将start过程更改为"start": "ng serve --proxy-config proxy.conf.json" 当我输入指挥官npm start,然后在开始时我可以看到 Proxy created: /api -> http://localhost:8080.那么,我猜目前为止还不错。 我是trying发送请求(Angular2)
  constructor(private http: Http) {
    this.getAnswer();
  }

  getAnswer(): any {
    return this.http.get("/api/hello")
      .subscribe(response => {
        console.log(response);
      })
  }
我收到一个错误消息http://localhost:4200/api/hello 404 (Not Found).正如我们所看到的,没有任何东西 代理。 w ^HY?我做错什么了吗? 要清楚。当我手动去http://localhost:8080/hello,一切正常。有 没有什么可以寻找的后端。

5 个回复 | 最后更新于 2018-02-28
2018-02-28   #1

你可以试试这个:

{
  "/api": {
    "target": "http://url.com",
    "secure": false,
    "pathRewrite": {"^/api" : ""}
  }
}
这个对我有用,
** NG Live Development Server is running on http://localhost:4200. **
 10% building modules 3/3 modules 0 active[HPM] Proxy created: /api  ->  http://ec2-xx-xx-xx-xx.ap-south-1.compute.amazonaws.com
[HPM] Proxy rewrite rule created: "^/api" ~> ""

2018-02-28   #2

你可以试试这个:

{
  "/api": {
    "target": "http://url.com",
    "secure": false,
    "pathRewrite": {"^/api" : ""}
  }
}
这个对我有用,
** NG Live Development Server is running on http://localhost:4200. **
 10% building modules 3/3 modules 0 active[HPM] Proxy created: /api  ->  http://ec2-xx-xx-xx-xx.ap-south-1.compute.amazonaws.com
[HPM] Proxy rewrite rule created: "^/api" ~> ""

2018-02-28   #3

这接近为我工作。也不得不补充

"changeOrigin": true,
完整的proxy.conf.json如下所示:
{
  "/proxy/*": {
  "target": "https://url.com",
  "secure": false,
  "changeOrigin": true,
  "logLevel": "debug",
  "pathRewrite": {"^/proxy" : ""}
  }
}

2018-02-28   #4

尽管看起来我不得不根据上面的答案做一个小小的调整 有点奇怪地看着现在的配置。 这是我的p下面显示了roxy.conf.json:

{
  "/api/*": {
     "target": "https://url.com",
     "secure": false,
     "changeOrigin": true,
     "logLevel": "debug",
     "pathRewrite": {"^/api" : "http://url.com/api"}
  }
}
基本上,我完全重写了路径。现在它起作用了。

2018-02-28   #5

* MAC 上这对我很有用 Angular 4运行 localhost:* * ** package.json中*

"start": "ng serve --proxy-config proxy.config.json",
* proxy.config.json * * _我们的公司服务器_ 将被替换为非现场网址*
{
  "/v1": {
    "target": "https://our-company-server.com:7002",
    "secure": false,
    "logLevel": "debug"
  }
}
凡角* GET *请求将是...
this.http.get('/v1/dashboard/client', options).map...

// options are headers, params, etc...
// then .map the observable in this case.

登录后方可回帖

Loading...