我想使用数组作为Angular的get方法的参数。 我使用如下代码。
import { Http } from '@angular/http';
constructor(private http: Http) {}
this.http.get('http://localhost:5000/test',{
params: {user}
})
用户定义为{id: number=101, name: string='john'}
我希望生成URL
http://localhost:5000/test?id=101&name=john
但是,生成的URL是
http://localhost:5000/test?user=%7B%id%22:%22YV1AMbiy%22,%22name%22:%22345678%22
答案 0 :(得分:0)
从get方法的参数定义中删除{}。
import { Http } from '@angular/http';
constructor(private http: Http) {}
this.http.get('http://localhost:5000/test', params: user )
答案 1 :(得分:0)
它应该是params: {user}
,而不是params: user
。否则,它将被编译为params: { 'user': user }
答案 2 :(得分:0)
您可以使用
let params = new HttpParams()
.set('id', 101)
.set('name','john');
return this._HttpClient.get(URL, { params: params })
答案 3 :(得分:0)
您可以在Angular中使用JSON.stringify
this.http.get(
`http://localhost:5000/test`,
{
params: { user: JSON.stringify(user) },
},
);
在后端,您可以使用:
const user = JSON.parse(req.query.user)