Angular如何向节点发送get请求

时间:2018-01-17 22:35:08

标签: javascript angularjs node.js angular

我有一个在端口8000运行的节点服务器

app.get('/historical/:days' ,(req,res,next){..})

如何从angular(端口4200)从浏览器向节点服务器发出请求? 我做了以下

makeRequest(): void {
this.loading = true;
this.http.get('http://localhost:8000/historical/:day')
.subscribe(data => {

  this.data = data;
  console.log(this.data)
  this.loading = false; });

}

在角度的html侧:

<pre>
<div>
  {{makeRequest()}}
</div>

</pre>

当我输入http://localhost:4200/historical/1时,(其中1表示前一天的历史数据) 没有任何反应

怎么办?

1 个答案:

答案 0 :(得分:1)

对于一个我不会从你的HTML调用makeRequest函数。每次更改检测周期运行时,Angular都会触发此方法(很多api请求)。相反,我会将它包含在你的ngOnInit生命周期钩子

ngOnInit(){
    this.makeRequest();
}

由于您的节点服务器在localhost:8000上运行,因此

this.http.get('http://localhost:8000/historical/1').subscribe(...);

应该有效。如果你想点击localhost:4200来获取api请求,你需要将你的api调用从localhost:4200代理到localhost:8000。 Angular CLI proxy docs