我试图向一个节点服务器发送一个post请求。 这是我的客户端代码:jQuery + node.js表示POST请求
function send(userid,message){
$.ajax({
method: "POST",
url: "/chat/messages?id="+userid+'&message='+message
})
clear();
}
这是我的服务器端代码:
app.post('/chat/messages',function (req,res){
var query = url.parse(req.url,true).query
insertMessage(query.id,query.message)
})
这工作,但我不知道使用后得到的查询字符串中的数据是正确的要走的路。
我试图在$ajax
参数添加数据字段:
function send(userid,message){
$.ajax({
method: "POST",
url: "/chat/messages"
data : {'id' : userid, 'message' : message}
})
clear();
}
而在服务器端使用bodyParser()
解析体内容:
app.use(bodyParser.json())
app.post('/chat/messages',function (req,res){
console.log(req.body)
})
但登录时的响应时,body{ }
对象总是空的。 这是为什么? POST请求需要一个<form>
标记吗?
我试着编辑我的ajax请求,使用json
作为dataType并将数据字符串化,但req.body
仍然是空的。
$.ajax({
method: "POST",
url: "/chat/messages",
data : JSON.stringify({'id' : userid, 'message' : message}),
dataType: 'json',
})
你不发送JSON,所以...这是错误的bodyparser。如果您想发送json,则需要将发送给数据参数的对象串联起来。在这种情况下,也可以帮助设置contentType。 –
,但即使使用'bodyParser.raw()',请求主体仍为空。 –
为什么我的问题被低估?有人能告诉我它有什么问题吗? –