通过AJAX将JSON数据发送到服务器

时间:2016-07-18 06:30:34

标签: javascript ajax node.js forms body-parser

我想手动将JSON格式的表单数据发送到服务器。 我将表单数据更改为下面的JSON fomat。 我在客户端javascript中的数据是JSON(即{"firstname":"john","lastname":"smith"}

$.ajax({
    type: 'POST',
    url: "http://localhost:3000/UserRegistration",
    dataType: 'application/json',
    data: JSONData,
    success: function(data) {

    }
});

我正在使用body-parser,在我的server.js代码中,我执行console.log(req.body),但数据以此格式显示

{ '{"firstname":"john","lastname":"smith"}': '' }

它增加了更多花括号。这是为什么?如何访问服务器端的数据

3 个答案:

答案 0 :(得分:0)

dataType: 'application/json'会得到json

server回复

设置processData : falsecontentType : 'application/json' [Ref]

  

processData:默认情况下,作为对象传入数据选项的数据(技术上,不是字符串)将被处理并转换为符合默认内容的查询字符串 - 输入"application/x-www-form-urlencoded"。如果要发送DOMDocument或其他未处理的数据,请将此选项设置为false

  

contentType:将数据发送到服务器时,请使用此内容类型。默认为“application / x-www-form-urlencoded; charset = UTF-8”,这在大多数情况下都适用。如果您明确地将内容类型传递给$ .ajax(),那么它总是被发送到服务器(即使没有数据发送)

答案 1 :(得分:0)

请直接将您的对象解析为json。例如:JSON.Stringfy(obj)

答案 2 :(得分:0)

您可以序列化表单,bodyparser会将它解析为json。

$.post('http://localhost:3000/UserRegistration', form.serialize(), function(data) {
    ...
});