JQuery Post发送表单数据而不是JSON

试图发送json。 这是我的function:

var object = ... ; $.ajax({ type: 'POST', url: '<url>', contentType: 'application/json; charset=utf-8', dataType: 'json', data: object }); 

但是,每当我检查Chrome浏览器,它总是将其作为查询参数发送:

 Request Payload: startDate=Wed+Dec+19+2012+19%3A00%3A00+GMT-0500+(EST)&endDate=Thu+Dec+20+2012+19%3A00%3A00+GMT-0500+(EST)& 

我如何得到它作为JSON发送?

JSON.stringify(object)

样品:

 $.ajax({ type: 'POST', url: '<url>', contentType: 'application/json; charset=utf-8', dataType: 'json', data: JSON.stringify(object) }); 

注意所有浏览器( http://caniuse.com/#feat=json )都不支持JSON.stringify,尤其是浏览器IE7及更低版本。

如果你也需要支持这个浏览器,你可以使用这个Javascript库: https : //github.com/douglascrockford/JSON-js

使用JSON.stringify(object) string化

修改data字段为:

 ... data: JSON.stringify(object), ... 

你做这件事的方式,国际海事组织,jQuery的参数作为一个字典(键值对),并构造一个百分位编码的string; 因此你可以看到输出。

我发现使用JSON以默认的“application / x-www-form-urlencoded”格式发送数据更容易,如下所示:

 $.ajax({ type: 'POST', url: '<url>', dataType: 'json', data: {json:JSON.stringify(object)} }); 

在服务器上使用常规方法来接收名为json字段。

只是分享,看看这是否对你有效。