Ajax请求发送属性路径

时间:2018-03-11 15:31:39

标签: javascript ajax

我试图将数据发送到服务器。

我的Ajax电话:

$.ajax({
  url: config.api.url,
  type: config.api.method,
  contentType: config.api.contentType, // application/x-www-form-urlencoded; charset=UTF-8
  dataType: config.api.dataType,       // JSON
  data: config.api.dataType === 'GET' ? {} : JSON.parse(tmp),
  headers: config.api.headers,
  success: (response) => { onSuccess(response); },
  error: (error) => { onError(error); }
});

我的数据:

{
  sort: { name: 1 }
}
// I set name property by sort['name'] = 1; at js

但服务器收到了:

{ 'sort[name]': 1 }

我的nodejs服务器代码:

exampleData = (req, res) => {
  var sort = req.body.sort;
  console.log(sort);       // undefined
  console.log(req.body);   // { ..., 'sort[name]': 1 }
}

Chrome表单数据:

Chrome Form Data

所以,我无法正确读取对象,就像从ajax请求发送的对象一样,出了什么问题?

我该如何解决?

1 个答案:

答案 0 :(得分:0)

我希望你使用express.js。如果是,那么你需要身体解析器中间件。

var app = require('express')(),
    bodyParser = require('body-parser');
app.use(bodyParser.json());
app.post('/', function (req, res) {
    console.log(req.body);
});