php - 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;
}
当我在本地服务器上尝试相同的请求时,它工作正常这里是那个输出
在这种情况下你能帮帮我吗?谢谢
解决方案
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;
}
推荐阅读
- arrays - 如何重新排序表格视图单元格并在重新排序后保存单元格的状态
- cluster-computing - 调整 akka.net 集群池路由器的池大小
- javascript - 最大长度和匹配的输入框问题
- python - 如何缩短这些代码?
- excel - 使用 VBA 从文本文件中读取阿拉伯文本并根据条件复制到 Excel
- github - 请求将包从 Github 安装到 PyCharm 的步骤
- go - 如何模拟嵌套的第三方依赖项?
- microsoft-graph-api - Microsoft Graph API 错误 - 有效负载中的属性内容具有与架构不匹配的值
- libreoffice-calc - LibreOffice Calc - 按月和年的 MAXIFS
- ruby-on-rails - 如果在 rails 中设置了正确的时区,为什么我会得到错误的时间?