Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在express server上使用jquery发布json_Jquery_Json_Node.js_Ajax_Express - Fatal编程技术网

在express server上使用jquery发布json

在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')

我想向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')

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解析结果