thinkphp3.2 后台接收安卓前端传参出问题(取不到参数数据)

场景: thinkphp3.2.3 后台接口为非url传参,前端说是用post传参的
问题描述:接口取不到参数数据,用 I()函数,$_GET,$_REQUEST,$_POST等都取不 到数据
原因:一个PHP老同事也遇到过相同问题。原因后面详述
解决:后台用
$data = file_get_contents("php://input");
来获取前端传来的参数
功能整体代码如下:

/**
     * 前端扫描二维码,查询产品信息及相关厂家信息
     * @param  {string} $itemId
     * @return {json} $data $info $status
    */
public function getItemInfo()
{
        //url传参接收(这是以前接受不到参数的代码,注释掉了,方便大家对比)
        //$tid = I('itemId');
        //$uid = I('uid');
        //$location = I('location');

         //安卓前端 传参接收(这是后来改用的接收参数的代码)
         $tmp = file_get_contents("php://input");
         $arr = json_decode($tmp,true);
         $tid = $arr['itemId'];
         $uid = $arr['uid'];
         $location = $arr['location'];

        if(!$uid) $uid = 'unreg';//未传用户uid,默认设置 为 uid = 'unreg'的用户
        
        if(!$tid){
            
            $this->error('扫描出错',0);
        }
        //后面代码省略,都是功能性代码了...
}

你可能感兴趣的:(thinkphp3.2 后台接收安卓前端传参出问题(取不到参数数据))