[英]jQuery AJAX form using mail() PHP script sends email, but POST data from HTML form is undefined
[英]JQuery Post sends form data and not JSON
试图发送json。 这是我的功能:
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)
字符串化
将data
字段修改为:
...
data: JSON.stringify(object),
...
你这样做的方式,IMO,jQuery将参数视为字典(键值对),并从中构造百分位编码的字符串; 因此你看到了输出。
我发现以默认的'application / x-www-form-urlencoded'格式发送数据更容易,JSON作为这样的字段:
$.ajax({
type: 'POST',
url: '<url>',
dataType: 'json',
data: {json:JSON.stringify(object)}
});
在服务器上使用常规方法接收名为json
字段。
只是分享,看看这是否适合你。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.