【问题标题】:Angular2 http.get from external APIAngular2 http.get 来自外部 API
【发布时间】:2017-02-20 08:08:42
【问题描述】:

我不知道如何将这个 AngularJS $http.get 重写为 Angular2:

$scope.toggle = function() {
 $http.get('http://example.com?operation=getEmployeeData', {
    params: {
      data: JSON.stringify({
        params: {
          firstName : 'John',
          lastName  : 'Doe',
          empType   : 'Administrative',
          orgUnit   : 'Management',
          lang      : 'Eng'
        }
      })
    }
  }).then(function(data) { $scope.staff = data }

带参数的url如下所示:

http://example.com?operation=getEmployeeData&data={"params":{"firstName":"John","lastName":"Doe","empType":"Administrative","orgUnit":"Management","lang":"Eng "}}

我如何在 Angular2 中做到这一点? 谢谢!

【问题讨论】:

    标签: javascript json angular


    【解决方案1】:

    在 Angular2 中,Http.GET 与 AngularJS 非常相似,但要传递 url 参数,您必须在 @angular/http 包中使用 URLSearchParams
    你想做的事:

    let params: URLSearchParams = new URLSearchParams();
    params.set("data",JSON.stringify({
            params: {
              firstName : 'John',
              lastName  : 'Doe',
              empType   : 'Administrative',
              orgUnit   : 'Management',
              lang      : 'Eng'
            }
          }));
    //Make the call and return an observable
     return this.http.get(SomeVar.MY_URL, params)
          .toPromise()
          ...
    

    【讨论】:

      【解决方案2】:

      这是发布/获取的示例。只需使用方法作为帖子或根据您的要求获取它。

      您需要将方法名替换为您正在调用的方法名。

       private url = "http://example.com";
      
       methodname(resource1: String,resource2: String,resource3: String,resource4: 
       String,resource5: String){
      
       let body = JSON.stringify({"firstName":resource1,"lastName":resource2,
       "empType":resource3,"orgUnit":resource4,"lang":resource5});
      
      let headers = new Headers({ 'Content-Type': 'application/json' });
      let options = new RequestOptions({ headers: headers, method: "post/get" });
      
       return this.http.get/post(this.url,body,options)
              .map(this.extractData)
              .catch(this.handleError);
      }
      

      【讨论】:

        猜你喜欢
        • 2019-07-04
        • 2016-05-24
        • 2018-01-27
        • 2017-05-08
        • 1970-01-01
        • 1970-01-01
        • 2017-05-01
        • 2019-05-01
        • 1970-01-01
        相关资源
        最近更新 更多