yii2 获取从前台传过来的post数据

第一次使用yii写接口的时候,直接用了$_POST获取post数据,发现会报400错误,根本无法获取到post数据,用$_GET却能获取get数据。

纠结了很久,然后查资料,发现原来yii中默认的开启了csrf,有几种方法可以获取post数据,但是我还是使用了在需要的类中关闭了csrf,使用下面这行代码就可以实现:

$this->enableCsrfValidation = false;

发现终于可以取得到post数据。使用$_POST或者Yii::$app->request->post都可以。

如果不想对整个类都关闭csrf,也可以这样做:
1 public function beforeAction($action)
2 {
3     if (in_array($action->id, array('third-part-login'))) {
4         $this->enableCsrfValidation = false;
5     }
6     return parent::beforeAction($action);
7 }

使用Yii::$app->controller->action->id可以获取当前action的id,beforeAction的作用就是在action开始执行之前,先执行beforeAction里面的内容,上述代码的作用就是关闭csrf验证,从而获取post数据,

in_array($action->id, array('third-part-login'))的意思就是在array('third-part-login')数组中定义的action都会执行beforeAction中关闭csrf验证的操作。


转载于:https://www.cnblogs.com/liyali/p/7268183.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值