2017-07-28 19 views
0

我正嘗試在角度4應用程序中使用post方法執行登錄,該方法需要url和應用程序/ x-www-form- urlencoded數據(在主體中不是標題)。我們如何將對象轉換爲應用程序/ x-www-form-urlencoded in angular 4

我發現這個功能類似的職位angularjs,但這似乎並沒有對角V4工作

var str = []; 
for (var key in obj) { 
if (obj.hasOwnProperty(key)) { 
str.push(encodeURIComponent(key) + "=" + encodeURIComponent(obj[key]))     
console.log(key + " -> " + obj[key]); 
}} 
return str.join("&"); 

角官方文檔已經刪除了鏈接https://angular.io/api/http/BaseRequestOptions-class,也不是先前支持的查詢字符串導入可用。

我想知道是否有任何其他方法或模塊,我們可以使用。

+0

你想要這個嗎? https://angular.io/api/http/URLSearchParams – Alex

+0

其實我正在尋找一個從對象(例如:JSON)轉換爲正確編碼格式的模塊。在angularjs2的早期版本中,我曾經使用查詢字符串執行此操作,但現在不推薦使用。 – Ronit

回答

0

如果你想執行一個application/x-www-form-urlencoded post請求,並將該對象存儲在請求的主體中,這就可以工作。

post(data) { 
    let options = new DefaultRequestOptions(); 
     let params = new URLSearchParams(""); 

     for (var key in data) { 
      if (data.hasOwnProperty(key)) { 
       params.append(key, data[key]) 
      } 
     } 

     this.http.post('some url', params , options); 
} 

否則,您可以直接從標題選項通過url發送數據。

相關問題