牛骨文教育服务平台(让学习变的简单)
博文笔记

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

创建时间:2017-07-22 投稿人: 浏览次数:168

场景: 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);
        }
        //后面代码省略,都是功能性代码了...
}
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。