如何使用角度2在GET调用中发送参数我尝试了以下方式,但得到一些错误说,
Argument of type '{ params: URLSearchParams; }' is not assignable to parameter of type 'RequestOptionsArgs'.
Object literal may only specify known properties, and 'params' does not exist in type 'RequestOptionsArgs'.
Run Code Online (Sandbox Code Playgroud)
功能调用:
import {Http, Response, Headers, RequestOptions, URLSearchParams} from 'angular2/http';
import 'rxjs/Rx';
constructor(private nav: NavController, public http: Http) {
onLogin(value: string): void {
if(this.authForm.valid) {
this.userData.login();
let params = '';
let options = new RequestOptions({
// Have to make a URLSearchParams with a query string
params: new URLSearchParams('validateUsr=false')
});
this.http.get('https://itunes.apple.com/us/rss/topmovies/limit=1/json', options)
.map(res => res.json())
.subscribe(
data => {},
err => this.logError(err),
() => this.validateUser()
);
this.nav.push(AccountViewPage);
}
}
Run Code Online (Sandbox Code Playgroud)
需要通过这样的参数,
params: {
validateUsr: "false"
}
Run Code Online (Sandbox Code Playgroud)
Thi*_*ier 24
如果要在GET请求中发送查询参数,请使用该search属性而不是以下属性params:
constructor(private nav: NavController, public http: Http) {
}
onLogin(value: string): void {
if(this.authForm.valid) {
this.userData.login();
let params = '';
let options = new RequestOptions({
// Have to make a URLSearchParams with a query string
search: new URLSearchParams('validateUsr=false') // <-----
});
this.http.get('https://itunes.apple.com/us/rss/topmovies/limit=1/json', options)
.map(res => res.json())
.subscribe(
data => {},
err => this.logError(err),
() => this.validateUser()
);
this.nav.push(AccountViewPage);
}
}
Run Code Online (Sandbox Code Playgroud)
jbg*_*arr 11
Thierry的答案很棒,但是如果人们想要创建一个可以接受params的JS对象的函数,我想添加一个扩展选项.在以下函数中,data是一个可以传递给函数的键/值对的可选JS对象.然后迭代它,每个键/值对将被添加到URLSearchParams辅助对象(params).一旦构建了params对象,它就可以作为object()search下的属性传递给GET请求.RequestOptionsoptions
handleGet(service:string, data?:any):Observable<any[]> {
let params = new URLSearchParams();
for(let key in data) {
params.set(key, data[key]);
}
let options = new RequestOptions({
search: params
});
return this._http.get(service, options)
.map(this._extractData)
.catch(this._handleError)
.finally(() => {
// do something...
});
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
40985 次 |
| 最近记录: |