HttpClient追加参数对象GET请求
我很喜欢使用Ionic或Angular的noob。所以作为备忘单,我使用了离子超启动模板(下面的链接)。 我试图做一个GET请求我的API和它的作品只是觉得如果我做这样的:HttpClient追加参数对象GET请求
this.api.get('user/'+this.user.userId+'/entries?include=stuff&access_token=TOKEN');
,但是当我把网址参数到一个对象时,它停止工作:
let options = { 'include':'stuff',
'access_token':'TOKEN'
}
this.api.get('user/'+this.user.userId+'/entries', options);
我得到的唯一错误是“未经授权的请求”,因为包括访问令牌的选项对象没有附加到URL。
在离子超起动模板在我的params对象每个键的providers/api/api.ts
电话.set()
:
if (params) { reqOpts.params = new HttpParams();
for (let k in params) {
reqOpts.params.set(k, params[k]);
}
}
但根据角大学,这是不可能的,因为“的HttpParams是不可改变”。 如果真的做错了,我不相信它会出现在离子模板中。我也不相信我会成为第一个遇到这个问题的人。
但是,我卡在这里,所以任何帮助,将不胜感激。
链接到角大学: https://blog.angular-university.io/angular-http/#httprequestparameters
链接到离子超首发: https://github.com/ionic-team/starters/tree/master/ionic-angular/official/super
回答:
我想我想通了自己:
如果我写(在我的src/providers/api/api.ts
)
reqOpts.params = reqOpts.params.append(k, params[k]);
代替
reqOpts.params.set(k, params[k]);
它的工作原理。
,如果你使用的是环回API,因为我你可能已经嵌套状物体:
let options = { "filter": {
"order": "date DESC"
},
"access_token":this.user._accessToken
};
这是不行的。尝试改为:
let options = { "filter": '{"order":"date DESC"}',
"access_token":this.user._accessToken
};
以上是 HttpClient追加参数对象GET请求 的全部内容, 来源链接: utcz.com/qa/264159.html