2017-10-12 59 views
0

我想將多個參數傳遞給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

回答

0

嘗試:

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

1

除了使用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); 
    } 
相關問題