我想手动将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"}': '' }
它增加了更多花括号。这是为什么?如何访问服务器端的数据
答案 0 :(得分:0)
dataType: 'application/json'
会得到json
server
回复
设置processData : false
和contentType : '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) {
...
});