如何在Angular CLI

时间:2017-08-15 19:28:48

标签: node.js angular webpack proxy angular-cli

我创建了一个新的@ angular / cli项目,并在根组件中添加了一个http GET调用。没有使用代理,这可以正常工作。

export class AppComponent implements OnInit {
  constructor(private http: Http) {}

  ngOnInit() {
    this.http
      .get('https://dog.ceo/api/breeds/list/all')
      .map(response => response.json())
      .subscribe(data => console.log(data));
  }
}

当我尝试在Angular CLI wiki中添加configure as describe时出错了。

我的proxy.conf.json文件:

{
  "/api": {
    "target": "https://dog.ceo",
    "secure": false
  }
}

我将组件中的网址更改为/api/breeds/list/all。我跑了ng serve --proxy-config proxy.conf.json

然后我在浏览器控制台中发出内部服务器错误消息。在我开始服务的终端中,我收到了此消息[HPM] Error occurred while trying to proxy request /api/breeds/list/all from localhost:4200 to https://dog.ceo (EPROTO) (https://nodejs.org/api/errors.html#errors_common_system_errors)

我已经尝试了其他几个配置选项和多个API。结果是相似的。

完整代码可在GitHub上找到: https://github.com/ErikNijland/angular-cli-proxy-test

使用的版本:

  • @ angular / cli:1.3.0
  • NodeJS:v8.1.4

注意:我知道@ angular / cli正在使用Webpack。反过来又使用http-proxy-middleware。

1 个答案:

答案 0 :(得分:5)

我认为它正在发生,因为你要求https表格http。这可以使用代理中的标志来解决。

{
    "/api": {
    "target": "https://dog.ceo",
    "secure": false,
    "changeOrigin": true
    }
}