2016-09-15 89 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

我相信目的不仅仅在于指出某些可能不完全符合某人所寻求的解决方案的东西。 –