2017-10-12 19 views
0

http postメソッドに複数のパラメータをAngular4で渡したいとします。ここでは、各パラメータはJSONオブジェクトです。どのようにJSONパラメータを渡すか説明してください。私の次のコードでは、ペイロードはデータ=%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構造でカプセル化し、1つのオブジェクトデータとして送信してみます。 –

+0

あなたは郵便体としてどういう意味ですか?パスパラメータ?クエリ文字列? APIは何を期待していますか?身体が必要な場合は、なぜそれらを検索パラメータとして渡していますか? – jonrsharpe

+0

@ Ziyaddin Sadigov私はカプセル化しようとしましたが、2つのJSONオブジェクトは1つのパラメータとして渡します。私は2つのパラメータとしてサービスに送ってほしい – 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};カプセル化のために、2つのオブジェクトが1つのオブジェクトパラメータとして渡されます。私は2つの個々のオブジェクトパラメータとして渡す必要があります、他のアプローチを共有してください.. – 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); 
    } 
関連する問題