我在开发小程序的时候 发起了一个网络请求
wx.request({
url:"http://www.xiaozhiheng.com/regi.php",
data: {
"username":userName
},
header: {
'Content-Type': 'application/json'
},
method:'POST',
success:function(res){
console.log(res)
}
})
用的是POST 方法发送的username ,但是后台死活接不到值。
<?php
if($_SERVER['REQUEST_METHOD'] == "POST"){
$post = $_POST;
$username=$_POST['username'];
$arr = array('text' => $username, "pass" =>$_POST);
echo json_encode($arr);
}
?>
最后换了GET方法,一切正常。
大家有遇到这样的问题吗??
迷茫2017-04-11 13:11:43
$_POST
只能接收 Content-Type 为 application/x-www-form-urlencoded
和 multipart/form-data
的 POST 数据。
如果你要用 $_POST
的话,你就改一下这里:
header: {
'Content-Type': 'application/json'
}
把上面的 application/json
改成 application/x-www-form-urlencoded
(如果要上传文件的话就改成 multipart/form-data
,但是微信小程序里的上传文件用的是另外一个 API,具体的你可以仔细看一下文档)。
如果你坚持不改掉 application/json
的话,也不是没有办法,你就用
$input = file_get_contents('php://input');
来读取 POST 过来的数据。
参考资料(昨天刚在我朋友博客看到的):http://blog.zhengzi.me/541.html
巴扎黑2017-04-11 13:11:43
Content-Type不为multipart/form-data或者application/x-www-from-urlencoded时,PHP不会自动解析POST参数