首页 > 解决方案 > Yii 仅在服务器上以 post 方法没有收到数据

问题描述

创建了一个 API 端点,我在邮递员中将数据作为主体提交,但它在服务器上始终为空,而在 localhost 上工作正常。

请看请求在此处输入图像描述

相同的请求适用于 localhost 但不能在线。这是我Yii::$app->request->post()用来转储数据的服务器端的代码,这是该端点的完整代码。我试过$_POST,$_REQUEST服务器上的每个请求都是空的,

public function actionSocialcheck()
{
    $data = [];
    $model = new User();
    var_dump(Yii::$app->request->post());
    if ($model->load(Yii::$app->request->post(),'')) {
        $social = User::findBySocialLogin($model->socialLogin);
        if (empty($social)) {
            $data['status'] = self::API_OK;
            $data['check'] = false;
        } else {
            if (Yii::$app->request->post('role_id') != $social->role_id) {
                $data['error'] = \Yii::t('app', "You don't have permission to login as " . User::getRoleOptions($social->role_id));
                return $this->response = $data;
            }
            $data['error'] = \yii::t('app', "Social ID already exists.");
            $data['check'] = true;
            $data['status'] = self::API_OK;

            $data['detail'] =$social;
            $data['access-token'] = $social->access_token;
            // $usercl=new User();
            $loginarr = array(
                'device_name' => Yii::$app->request->post('device_name'),
                'device_token' => Yii::$app->request->post('device_token'),
                'device_type' => Yii::$app->request->post('device_type'),
                 );
            $data['login_detail']=$loginarr;

        }
    } else {
        $data['error'] = "Data not posted.";
    }
    $this->response = $data;
}

当我在本地服务器上尝试相同的请求时,它工作正常这里是那个输出 在此处输入图像描述

在这种情况下你能帮帮我吗?谢谢

标签: phpyii

解决方案


public function actionSocialcheck(){

if(Yii::$app->request->isPost){
$data = [];
$social = User::findBySocialLogin(Yii::$app->request->post('socialLogin'));
if (empty($social)){
    $data['status'] = self::API_OK;
    $data['check'] = false;
}else{
       if (Yii::$app->request->post('role_id') != $social->role_id) {
            $data['error'] = \Yii::t('app', "You don't have permission to login as " . User::getRoleOptions($social->role_id));
            return $this->response = $data;
        }
        $data['error'] = \yii::t('app', "Social ID already exists.");
        $data['check'] = true;
        $data['status'] = self::API_OK;

        $data['detail'] =$social;
        $data['access-token'] = $social->access_token;
        $loginarr = array(
            'device_name' => Yii::$app->request->post('device_name'),
            'device_token' => Yii::$app->request->post('device_token'),
            'device_type' => Yii::$app->request->post('device_type'),
             );
        $data['login_detail']=$loginarr;
    }

}else {
    $data['error'] = "Data not posted.";
}
$this->response = $data;
}

推荐阅读