在express server上使用jquery发布json
我想向express server发布一个json对象 Javascript在express server上使用jquery发布json,jquery,json,node.js,ajax,express,Jquery,Json,Node.js,Ajax,Express,我想向express server发布一个json对象 Javascript var task = { task: "Do something", deadline: "5 am" }; $.post("http://localhost:3000/api/tasks", task, (data) => { console.log(data); }, "json") Node.js/Express var bp = require('body-parser')
var task = {
task: "Do something",
deadline: "5 am"
};
$.post("http://localhost:3000/api/tasks", task, (data) => {
console.log(data);
}, "json")
Node.js/Express
var bp = require('body-parser')
app.use(bp.json());
app.post('/api/tasks', (req, res) => {
console.log(req.body);
res.json(req.body);
})
当我使用Postman测试服务器时,我得到了预期的输出,即它在控制台中显示任务
对象,并将其发送回客户端
但当我运行上面的javascript代码时,它会在控制台中显示一个空对象并发回空对象。jquery ajax调用中缺少了什么?尝试在请求中添加application/json头
$.ajax({ url: 'URL',
type: 'POST',
contentType: 'application/json',
data: JSON.stringify(DATA),
success: function(res) {
console.log(res)
}
} )
您没有发送json。$。ajax默认值是
application/x-www-form-urlencoded
不是task
json对象吗?没有json对象这样的东西。json是一种字符串数据格式好吧,那么我该怎么做呢?谢谢!成功了。有没有办法用$.post()
,而不是$.ajax()
,来达到同样的效果呢?$.post只是一个简写';s all$.ajax也可以。您可以使用$.post()
将代码段添加到您的答案中吗?我不确定在$.post()
中设置contentType
的正确语法是什么。无法使用$添加标题。post
必须使用$.ajax。如果要发送JSON响应,还可以使用JSON.parse解析结果