如何使用参数发送GET请求

时间:2019-06-02 16:34:20

标签: node.js angular

我正在构建一个简单的MEAN应用程序,但是GET方法面临一些问题。

我在mongo集合中插入了一些数据,现在我想获取所有通过Id作为参数的结果,但是angular向我返回了以下内容: enter image description here

我已经搜索了标头和httpParams,但似乎找不到解决方案。 我也对邮递员进行了测试,使用Get并将主体作为JSON传递,并且它起作用了,但我遇到了从角度发送主体的麻烦

这是我的代码:

角度服务

first heading
 1 paragraph
 2 paragraph
second heading
 3 paragraph
 4 paragraph

NodeJs功能

  import { Injectable } from '@angular/core';
  import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';
  import { Observable } from 'rxjs';
  import { map } from 'rxjs/operators';

  @Injectable({
    providedIn: 'root'
  })
  export class WebService {
    public api = "http://localhost:3000/";
    //NODE API
    public getRate(param: any){
      console.log(param);
      return this.http.get(this.api + "api/rate", {_id: param})
    }
}

节点被调用时返回undefined给我req.body。 我想念什么?请有人帮我。

2 个答案:

答案 0 :(得分:1)

它不起作用,因为GET请求没有请求正文。您可以尝试将POST请求与请求正文一起使用,或将ID作为请求参数或路径变量传递给GET请求。

答案 1 :(得分:-1)

您必须在http.get中传递HttpPrams的实例-

import { Injectable } from '@angular/core';
  import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';
  import { Observable } from 'rxjs';
  import { map } from 'rxjs/operators';

  @Injectable({
    providedIn: 'root'
  })
  export class WebService {
    public api = "http://localhost:3000/";
    //NODE API
    public getRate(param: any){
      let params = new HttpParams().set('_id', param);
      console.log(param);
      return this.http.get(this.api + "api/rate", { params: params })
    }
}