我試圖向一個節點服務器發送一個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()',請求主體仍爲空。 –
爲什麼我的問題被低估?有人能告訴我它有什麼問題嗎? –