2017-05-26 20:53:44 2575次浏览 2条回答 0 悬赏 50 金钱

我使用Ajax请求数据,但是rule检测未通过,behaviors()中怎么向Ajax返回错误信息?谢谢!

    protected $except=[];
    protected $verbs=['*'];
    public function behaviors(){
        return [
            'access'=>[
                'class'=>\yii\filters\AccessControl::className(),
                'except'=>$this->except,
                'user'=>'admin',
                'rules'=>[
                    [
                        'allow'=>false,
                        'roles'=>['?'],
                    ],
                    [
                        'allow'=>true,
                        'roles'=>['@'],
                    ],
                ],
            ],
            'verbs'=>[
                'class'=>\yii\filters\VerbFilter::className(),
                'actions'=>$this->verbs,
            ],
        ];
    }
补充于 2017-05-26 20:55

现在前端Ajax显示的是:undefined。逻辑是正确的,但是错误信息显示的不正确。

最佳答案

  • dingjj2010 发布于 2017-05-27 08:48 举报

    提供一个方法,在BEFORE_REQUEST添加事件处理,判断request的isAjax是否为true,如果是ajax,修改返回的response,可以选择返回json格式的内容.

  • 回答于 2017-05-27 08:51 举报
        protected $except=[];
        protected $verbs=['*'];
        public function behaviors(){
            return [
                'access'=>[
                    'class'=>\yii\filters\AccessControl::className(),
                    'except'=>$this->except,
                    'user'=>'admin',
                    'denyCallback' => function ($rule, $action) { 
                     //认证失败后回调函数
                     在这里做有意义的事、、、、   
                    },
                    'rules'=>[
                        [
                            'allow'=>false,
                            'roles'=>['?'],
                        ],
                        [
                            'allow'=>true,
                            'roles'=>['@'],
                        ],
                    ],
                ],
                'verbs'=>[
                    'class'=>\yii\filters\VerbFilter::className(),
                    'actions'=>$this->verbs,
                ],
            ];
        }
    
您需要登录后才可以回答。登录 | 立即注册
阿江
副董事长

阿江

注册时间:2015-10-18
最后登录:2024-03-03
在线时长:186小时21分
  • 粉丝94
  • 金钱16816
  • 威望160
  • 积分20276

热门问题