如何将多个JSON对象参数传递给Angular4中的http POST方法

如何将多个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); 
} 
+0

只是尝试封装您想要发送的所有数据与JSON结构中的对象,并将其作为一个对象数据发送。 –

+0

你的意思是作为后身?路径参数?请求参数?什么是API期望?如果你想要一个身体,为什么你将它们作为搜索参数传递? – jonrsharpe

+0

@Ziyaddin Sadigov我尝试使用封装,但两个JSON对象作为一个参数传递。我希望发送服务作为两个参数 – arjun

尝试:

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); 
    }