使用 jQuery POST json 来表达

2024-02-27

我在将 JSON 数据从客户端发送到运行 Express 的节点服务器时遇到问题。

这是一个简单的服务器,它演示了我的问题:

var express = require('express');

var app = express();

app.configure(function(){   
    app.use(express.bodyParser());
    app.use(app.router);
    app.use(express.logger());
});

app.listen(80);

app.post('/', function(req,res){
    console.log(req.body);
    console.log(req.body.number + 1);
});

该服务器只是将所有 POST 数据记录到控制台。

如果我将以下内容粘贴到 chrome 的开发控制台中:$.post('/', {number:1});

服务器打印出:

{ number: '1' }
11

如何阻止我传递的数字被解释为字符串? 这与我使用的 bodyParser 中间件有关吗?

任何帮助表示赞赏!


$.post发送 url 编码的数据,所以真正发送的是number=1,然后由 bodyParser 中间件对其进行解析。

要发送 json 你必须使用JSON.stringify({number:1}).

Using $.post不幸的是不会设置适当的Content-Typeheader(express无论如何都会处理它),所以最好使用:

$.ajax({
    url: '/', 
    type: 'POST', 
    contentType: 'application/json', 
    data: JSON.stringify({number:1})}
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 jQuery POST json 来表达 的相关文章

随机推荐