Yii2的action中不能使用$GLOBALS['HTTP_RAW_POST_DATA'] [ 求助交流 ]
今天在写微信回复的时候,发现在控制器里$GLOBALS['HTTP_RAW_POST_DATA']不能使用,提示Undefined index: HTTP_RAW_POST_DATA,好吧,用file_get_contents("php://input")也不行,但是不放框架里是可以获取到数据的,百度前几页基本都试过了,敢问各位大神怎么解决的?
共 5 条回复
-
已解决。因为默认post是需要csrf验证的,微信接口post过来的数据是没有csrf选项,所以$GLOBALS['HTTP_RAW_POST_DATA']获取不到数据,关闭csrf验证就行。
共 2 条回复MilkProtiem 回复于 2016-04-01 16:43 回复很多人本会回答,但同样的问题多了自然没了回答
@MilkProtiem 了解,谢谢
-
tur80232007 回复于 2017-01-10 10:37 举报
yii2无法接收到post数据的真正原因,因为其为了防止CSRF攻击,对POST的数据会进行验证,而微信的数据被拦截了,因此可设置$enableCsrfValidation=false,另外也可以在app/config/web.php的config中的request里面添加
$config = [
'id' => 'basic', 'basePath' => dirname(__DIR__), 'bootstrap' => ['log'], 'components' => [ 'request' => [ // !!! insert a secret key in the following (if it is empty) - this is required by cookie validation 'cookieValidationKey' => 'M6P-95oYhvzBmTI8vbeJrLMJwfvdBZY0', 'enableCsrfValidation' => false, ],
tur80232007 觉得很赞
carol
注册时间:2016-03-29
最后登录:2016-04-27
在线时长:0小时50分
最后登录:2016-04-27
在线时长:0小时50分
- 粉丝0
- 金钱35
- 威望0
- 积分35