jquery – 这个JSON结构何时被转换为所有字符串?

前端之家收集整理的这篇文章主要介绍了jquery – 这个JSON结构何时被转换为所有字符串?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我将 JSON结构发送到我的节点/快递服务器,并将对象保存到数据库中.问题是我发送带有整数和布尔值的JSON,但是一切都被保存为字符串.

这是我的节点/快递代码

var express = require('express');

var app = express();
app.enable("jsonp callback");
app.use(express.bodyParser());

// allow cross origin scripting to get data from devices directly
app.all('*',function(req,res,next) {
  res.header('Access-Control-Allow-Origin','*');
  res.header('Access-Control-Allow-Methods','PUT,GET,POST,DELETE,OPTIONS');
  res.header('Access-Control-Allow-Headers','Content-Type');
  next();
});

app.post('/departures',res) {

/* I started using this to convert back to integers - but need to solve the problem
    for (var i in req.body.data) {
      req.body.data[i].siteid = parseInt(req.body.data[i].siteid);
    }
*/
    console.log('saving data '+JSON.stringify(req.body.data));
    positionProvider.save(req.body.data,function(){
      res.json({status:'success'});
    })
});

这是我如何用jquery发帖:

var data = [{"siteid":123}];

    $.ajax({
        type: 'POST',url: serverUrl + '/departures',data: {
            data: data
        },success: function(resp) {
            alert('saved departure data '+JSON.stringify(data))
        },error: function(err) {
            console.log('error posting to server...');
            console.log(err);
        }
    });

jquery端报告它发送{“siteid”:123},但节点端报告它收到{“siteid”:“123”}.

整数被转换成字符串在哪里?

解决方法

您的数据将转换为字符串,作为将其从客户端发送到服务器的产品.请记住,客户端和服务器实际上并不是以JSON进行通信,它们正在以文本或二进制数据进行通信.服务器(Express?)隐式解释作为字符串发送的数据,如果包含内容类型:application / json请求头,则将其转换为JSON.如果希望数据以特定格式持续,则需要显式地在服务器上键入检查和转换.

TLDR(评论);不要依赖客户端发送有效的数据.在将其保存到数据库之前将其清理.

猜你在找的jQuery相关文章