在快速服务器上使用 jquery 发布 json
Posted
技术标签:
【中文标题】在快速服务器上使用 jquery 发布 json【英文标题】:Post json using jquery on express server 【发布时间】:2017-12-18 15:19:32 【问题描述】:我想发布一个 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 测试服务器时,我得到了预期的输出,即它在控制台中显示 task
对象并将其发送回客户端。
但是当我运行上面的 javascript 代码时,它会在控制台中显示一个空对象并返回空对象。我在 jquery ajax 调用中缺少什么?
【问题讨论】:
您没有发送 json。 $.ajax 默认是application/x-www-form-urlencoded
不是task
json 对象吗?
没有 json 对象之类的东西。 json是字符串数据格式
好的,那我该怎么做呢?
【参考方案1】:
尝试在您的请求中添加 application/json 标头。
$.ajax( url: 'URL',
type: 'POST',
contentType: 'application/json',
data: JSON.stringify(DATA),
success: function(res)
console.log(res)
)
【讨论】:
谢谢!那行得通。有没有办法使用$.post()
而不是$.ajax()
来实现同样的效果?
$.post 只是一个简写形式,所有 $.ajax 都可以使用。
您能否将代码 sn-p 使用$.post()
添加到您的答案中?我不确定在$.post()
中设置contentType
的正确语法是什么
无法使用$.post
添加标题,必须使用$.ajax。如果您要发送 json 响应,也可以使用 JSON.parse 解析结果,请参阅 here以上是关于在快速服务器上使用 jquery 发布 json的主要内容,如果未能解决你的问题,请参考以下文章
用 JavaScript 中的 JSON 数据动态填充表格的快速方法
jQuery 用另一个 DOM 完全替换元素的 DOM - 更快的方法?