js像这样发送json到php,为什么$_POST为空?如何做?

 我来答
网海1书生
科技发烧友

2019-01-29 · 擅长软件设计、WEB应用开发、小程序
网海1书生
采纳数:12311 获赞数:26231

向TA提问 私信TA
展开全部

首先,尽可能利用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);
胃疼shine
2019-01-29 · TA获得超过257个赞
知道小有建树答主
回答量:295
采纳率:79%
帮助的人:134万
展开全部
我测了这段是没问题的
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);
}
};
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友88897ec
2019-01-28 · TA获得超过188个赞
知道小有建树答主
回答量:269
采纳率:79%
帮助的人:73.5万
展开全部
就不是这么用的,你这是表单提交,但却没有表单数据,所以post提取不到数据啊,提交json要用json的方式提交
追问
给段代码呗
那用js如何发送post到php呢
追答
httpRequest.send("name=trump&nickname=idiot");
//后台取表单值
$_POST("name")//=trump
$_POST("nickname")//=idiot
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
网友了了了
2019-01-28 · TA获得超过944个赞
知道小有建树答主
回答量:1074
采纳率:33%
帮助的人:202万
展开全部
一般是用form表单提交,或者ajax提交哦
如果使用js可以用ajax提交post数据,后端是可以接收到的
你可以去百度一下ajax怎么使用
有问题继续咨询
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式