【问题标题】:Angular 2 http get querystring paramsAngular 2 http 获取查询字符串参数
【发布时间】:2017-03-27 09:26:41
【问题描述】:

希望有人可以提供帮助。我构建了一个基于较新的 Angular 2 的 ionic 2 应用程序,我熟悉 Angular 的早期版本,但仍然试图弄清楚整个打字稿。

我的 API 设置带有基本的 get 查询字符串(例如 domain.com?state=ca&city=somename)

export class TestPage {
public state: string ='ca';
public city: string = null;
constructor(private http: Http){}

public submit() { 
   let url = "http://localhost/api"; 
   let payload = {"state": this.state, "city": this.city};
   this.$http.get(url, payload).subscribe(result => {
      //result
   }, err => {  
      //do something with the error 
   }
  )
 }
}

当我执行此操作时,它会很好地提取我的 API url,并且我可以得到响应,但是请求中没有发送任何查询字符串。它只是发送http://localhost/api。如果我console.log 有效载荷很好。

最终我试图让它去做https://localhost/api?state=ca&city=example

查看示例我真的找不到任何直截了当的内容。

难道不能用这个较新版本的 Angular 在http 上获取有效负载吗?上面的代码只是一个例子。我有很多查询字符串,这就是我希望向它发送有效负载的原因。

任何帮助或建议将不胜感激。

【问题讨论】:

  • ionic 2 基于 angular 2.. 不是 angular 4..
  • Angular 4 我认为是 Angular 2.4。谷歌搜索它会产生解释这一点的结果。 Angular.js 是 v1,Angular 2 是 v2,没有任何 v3 或 v4,但有些人出于某种原因,调用 2.3 和 2.4 Angular 3 和 4。
  • @GillesC 没有。版本为 4.0.0。不是 2.4.0。 Angular 现在使用语义版本控制,4.0 是 2.x 版本的演变。
  • @limit:阅读 API 文档:angular.io/docs/ts/latest/api/http/index/Http-class.html。应该是this.http.get(url, { params: payload })

标签: angularjs ionic2 query-string angular4


【解决方案1】:

Http.get 方法将实现 RequestOptionsArgs 的对象作为第二个参数。

该对象的搜索字段可用于设置字符串或 URLSearchParams 对象。

一个例子:

// Parameters obj-
 let params: URLSearchParams = new URLSearchParams();
 params.set('state', this.state);
 params.set('city', this.city);

 //Http request-
 return this.http.get('http://localhost/api', {
   search: params
 }).subscribe(
   (response) => this.onGetForecastResult(response.json()), 
   (error) => this.onGetForecastError(error.json()), 
   () => this.onGetForecastComplete()
 );

文档:here

【讨论】:

  • 感谢您的解释。这行得通。我想知道它是否会从单个有效负载中循环出来,所以我不必设置每个参数。
  • 您可以为此应用额外的逻辑。干杯!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-18
  • 2017-12-09
  • 2021-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多