2016-09-15 74 views
18

如何使用vanilla JS發送JSON數據的AJAX POST請求。使用JSON創建XmlHttpRequest POST

我知道內容類型是url形式編碼,它不支持嵌套的JSON。

有沒有什麼辦法可以在簡單的舊JS中使用嵌套JSON來做出這樣的POST請求。我已經嘗試過在這裏找到的各種序列化方法,但它們都將我的JSON壓縮成一種格式。

這裏是我的JSON:

{ 
    email: "[email protected]", 
    response: { 
     name: "Tester" 
    } 
} 
+1

你的問題不包含有效的JSON。也許你正在發送這個JavaScript對象,然後通過某個過程轉換爲JSON?無論哪種方式,正如其他人在評論中對下面的答案所說的,沒有任何理由說明你的JSON對象應該被壓扁。如果您遇到特定庫或代碼塊的問題,請改爲發佈。 –

回答

43

如果使用JSON得當,你可以有嵌套對象沒有任何問題:

var xmlhttp = new XMLHttpRequest(); // new HttpRequest instance 
xmlhttp.open("POST", "/json-handler"); 
xmlhttp.setRequestHeader("Content-Type", "application/json;charset=UTF-8"); 
xmlhttp.send(JSON.stringify({ email: "[email protected]", response: { name: "Tester" } })); 
+3

等等,所以,你發佈了一個你知道是重複的問題的答案? –

+5

它適應OP需求 –

+2

我相信目的不僅僅在於指出某些可能不完全符合某人所尋求的解決方案的東西。 –