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
字段。
只是分享,看看这是否对你有效。