json - 使用 jQuery 发布 json 来表达

标签 json node.js post express

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

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

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})

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

$.ajax({
    url: '/', 
    type: 'POST', 
    contentType: 'application/json', 
    data: JSON.stringify({number:1})}
)

关于json - 使用 jQuery 发布 json 来表达,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16498256/

相关文章:

ios - 在 Swift 中使用动态键解析 JSON

json - 如何在 Typescript 中声明具有特殊类型的变量

ios - IONIC 3 - WKWebview CORS 问题

post - Drupal : $_POST and MENU_CALLBACK. 如何运作?

ios - 如何在 POST 请求中附加数据 - Swift

java.lang.NoSuchMethodError : com. google.gson.Gson.newBuilder()Lcom/google/gson/GsonBuilder;

java - 使用 MessageFormat 转义双引号

javascript - 如何在异步/等待情况下正确实现错误处理

javascript - 如何为 node js npm 设置本地存储库?

node.js - 如何设置每个服务器/公会的机器人状态