最近刚学php,请求时有这样的问题,
在html页面中:
let params={
'productid':1,
'num':1,
}
params=JSON.stringify(params);
$.ajax({
type:"post",
url:"addCart.php",
async:true,
data:params,
dataType:'json',
success:function(){
},
});
在php中:
//1、接收传递过来的POST参数
$productid=intval($_POST['productid']);
$num=intval($_POST['num']);
问题就是:这样请求会报错,去掉json.stringify(params)却可以,应该怎样接收JSON格式的数据呢
因为利用
JSON.stringify
转化后的字符串,其实并不是post请求中实际需要的查询字符串形式,例如productid=1&num=1
。jquery的ajax的data参数在接受到对象形式的数据时会先将其转化为查询字符串形式,所以这里没有必要先将params对象进行字符串化,如果想要自己手动做这步,需要进行序列化。