js使用ajax发送post json,javascript-如何用ajaxpost复杂json数据

$(function(){

$.ajax({

url:'check.php', //api接口地址

data:{

"head": {

"name": "test",

},

"body": {

"age ": "2",

}

},

type:'post', //数据传输方式

dataType:'json',//数据传输格式

cache:false,

success:function(data) {

//执行成功后的回调函数,data为返回的数据

alert(data);

},

error : function() {

alert('error');

}

});

});

新手,求问为什么这个老是显示error,也就是说post不成功?怎么改?后台接收的话用PHP怎么解析这个数据呢?

回复内容:

$(function(){

$.ajax({

url:'check.php', //api接口地址

data:{

"head": {

"name": "test",

},

"body": {

"age ": "2",

}

},

type:'post', //数据传输方式

dataType:'json',//数据传输格式

cache:false,

success:function(data) {

//执行成功后的回调函数,data为返回的数据

alert(data);

},

error : function() {

alert('error');

}

});

});

新手,求问为什么这个老是显示error,也就是说post不成功?怎么改?后台接收的话用PHP怎么解析这个数据呢?

将Json作为字符串进行编码,然后以一个参数传送到后台,在后台进行解码在解析json;

var json={

"head": {

"name": "test",

},

"body": {

"age ": "2",

}

};

var str=JSON.stringify(json);

$(function(){

$.ajax({

url:'check.php', //api接口地址

data:{json:escape(str)},

type:'post', //数据传输方式

dataType:'json',//数据传输格式

cache:false,

success:function(data) {

//执行成功后的回调函数,data为返回的数据

alert(data);

},

error : function() {

alert('error');

}

});

});

这样就把复杂Json对象作为一个参数传递到后台。

php后台接收:POST["json"]的值,然后解码解析;

json格式错误,"test", "2" 后面都不需要 逗号

做json encode转换为字符串形式,php那边json_decode一下就行了,比如

data:{values: $.jsonEncode({header:...})} //js端怎么jsonencode我忘了,自己查一下哈。

然后

$parameters = json_decode($_POST['values']);

后台接收的话用PHP:json_decode(file_get_contents('php://input'), true);

首先 errror 是你的服务器没有返回 JSON 格式的数据,

然后"head","body"后面应该跟字符串吧,

最后在PHP端,可以 $_POST['head'] , $_POST['body']获取 head,body的字符串

age后面有空格吗?记得type应该是POST吧,还有dataType你看下有问题没

$(function(){

$.ajax({

url:'check.php', //api接口地址

data:{

"head": {

"name": "test",

},

"body": {

"age": "2",

}

},

type:'POST', //数据传输方式

dataType:'application/json',//数据传输格式

cache:false,

success:function(data) {

//执行成功后的回调函数,data为返回的数据

alert(data);

},

error: function() {

alert('error');

}

});

});

格式错误了,'test'和'2'后面的逗号都要去掉,你试下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值