js像这样发送json到php,为什么$_POST为空?如何做?
4个回答
展开全部
首先,尽可能利用jquery的ajax来发送数据,这样它会自动把你的json编码成x-www-form-urlencode的格式,这样php的$_POST就能获得数据了。
如果一定要用原生js来做ajax,那就要自己来实现编码和解码,比如这样:
httpRequest = new XMLHttpRequest();
httpRequest.open("POST",$url,true);
httpRequest.setRequestHeader("Content-Type","application/json");
var arr = ["124","424","aab","cdf","哈哈哈"];
var str = JSON.stringify(arr);
httpRequest.send(str);
PHP端:
$data=file_get_contents('php://input');
$arr=json_decode($data,true);
print_r($arr);
展开全部
我测了这段是没问题的
var xhr = new XMLHttpRequest();
xhr.open('post', 'a.php' );
xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xhr.send('name=fox&age=18');
xhr.onreadystatechange = function () {
// 这步为判断服务器是否正确响应
if (xhr.readyState == 4 && xhr.status == 200) {
console.log(xhr.responseText);
}
};
var xhr = new XMLHttpRequest();
xhr.open('post', 'a.php' );
xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xhr.send('name=fox&age=18');
xhr.onreadystatechange = function () {
// 这步为判断服务器是否正确响应
if (xhr.readyState == 4 && xhr.status == 200) {
console.log(xhr.responseText);
}
};
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
就不是这么用的,你这是表单提交,但却没有表单数据,所以post提取不到数据啊,提交json要用json的方式提交
追问
给段代码呗
那用js如何发送post到php呢
追答
httpRequest.send("name=trump&nickname=idiot");
//后台取表单值
$_POST("name")//=trump
$_POST("nickname")//=idiot
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一般是用form表单提交,或者ajax提交哦
如果使用js可以用ajax提交post数据,后端是可以接收到的
你可以去百度一下ajax怎么使用
有问题继续咨询
如果使用js可以用ajax提交post数据,后端是可以接收到的
你可以去百度一下ajax怎么使用
有问题继续咨询
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询