使用 JSON 进行 XmlHttpRequest POST

IT技术 javascript json ajax
2021-03-06 12:16:01

如何使用 vanilla JS 进行 AJAX POST 请求发送 JSON 数据。

我知道内容类型是 url 形式编码的,它不支持嵌套的 JSON。

有什么办法可以在普通的旧 JS 中使用嵌套的 JSON 发出这样的 POST 请求。我已经尝试了在 SO 上找到的各种序列化方法,但它们都将我的 JSON 扁平化为一种格式。

这是我的 JSON:

{
   email: "hello@user.com",
   response: {
       name: "Tester"
   }
}
1个回答

如果您正确使用 JSON,您可以毫无问题地拥有嵌套对象:

var xmlhttp = new XMLHttpRequest();   // new HttpRequest instance 
var theUrl = "/json-handler";
xmlhttp.open("POST", theUrl);
xmlhttp.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
xmlhttp.send(JSON.stringify({ "email": "hello@user.com", "response": { "name": "Tester" } }));
不适合我:(
2021-04-21 12:16:01
请注意,这仅适用于“POST”和“PUT”请求。如果您使用“GET”请求,则 xmlhttp.send([argument]) 的参数将被忽略。我最终将 AWS API Gateway 端点资源更改为“PUT”以解决此问题...
2021-05-02 12:16:01
@BillalBegueradj,他的目标 URL 是“/json-handler”,这是进行调用的域的相对路径。可能是名字有点混乱,它发生在我身上......只需将其更改为“someFolderNameHere”
2021-05-06 12:16:01
您没有在open()?
2021-05-08 12:16:01
charset=UTF-8 是不必要的,因为它是 application/json 类型的默认编码/字符集
2021-05-08 12:16:01