如何将多个JSON对象参数传递给Angular4中的http POST方法
问题描述:
我想将多个参数传递给Angular4中的http post方法。这里每个参数都是JSON对象。任何人都可以解释如何传递JSON参数。对于我的以下代码Request Payload显示为数据=%5Bobject%20Object%5D & obj1 =%5Bobject%20Object%5D。如何将多个JSON对象参数传递给Angular4中的http POST方法
saveData(data : any): Promise<any> {
let obj1 : any = {'p_id':'2'};
let params = new URLSearchParams();
params.append("data", data);
params.append("obj1", obj1);
let headers = new Headers({ 'Content-Type': 'application/json' });
let options = new RequestOptions({ headers: headers });
return this.http.post('urlContent', params, options).toPromise()
.then(response => response.json())
.catch(this.handleError);
}
答
尝试:
saveData(data : any): Promise<any> {
let obj1 : any = {'p_id':'2'};
let body= {obj1 ,data};
let headers = new Headers({ 'Content-Type': 'application/json' });
let options = new RequestOptions({ headers: headers });
return this.http.post('urlContent', body, options).toPromise()
.then(response => response.json())
.catch(this.handleError);
}
+0
@ Bougarfaoui El houcine,let body = {obj1,data};由于封装,两个对象作为单个对象参数传递。我需要通过两个单独的对象参数,请分享任何其他方法.. – arjun
答
除了使用URLSearchParams()的,我已经使用了阵列和传递的数据。这个对我有用。
saveRtlList(data : any): Promise<any> {
let obj1 : any = {'p_id':'2'};
let savedata : Array<any> = [];
savedata.push(JSON.stringify(data));
savedata.push(obj1);
let values : any = {} as any;
values.param = savedata;
return this.http.post(url, {}, {params:vals}).toPromise()
.then(response => response.json())
.catch(this.handleError);
}
只是尝试封装您想要发送的所有数据与JSON结构中的对象,并将其作为一个对象数据发送。 –
你的意思是作为后身?路径参数?请求参数?什么是API期望?如果你想要一个身体,为什么你将它们作为搜索参数传递? – jonrsharpe
@Ziyaddin Sadigov我尝试使用封装,但两个JSON对象作为一个参数传递。我希望发送服务作为两个参数 – arjun