AJAX获取页面后跳转问题 [ 2.0 版本 ]
我们在做后台管理的情况下很多时候用到分栏,比如上面是导航栏(A区),左边是菜单栏(B区),右边是内容区域(C区),
那么我在点击B区的时候,对应的C区会加载内容进来,是以AJAX获取的内容;
现在问题来了,如果我AJAX获取的内容后台检测是需要权限或者需要登录的时候,就需要整个页面都跳转到登录页面去,如果后台直接用 redirect()
就不行的,因为他是AJAX获取过来的HTML页面
我试了直接使用:
echo "<script>window.location.href='{$url}';</script>";
这样可以跳转 但会影响到其它操作!
所以在这里请教一下,如果是AJAX获取的页面 他又需要检测权限跳转整个页面的情况下 ,怎么实现跳转呢?
共 4 个回答
-
dingjj2010 回答于 2017-05-25 09:19 举报
一般的处理方法是ajax返回的数据都是按照一定格式的.
类似{"code":0,"data":"html内容","message":""},
在js上获取到数据要先判断code的值.执行不同的操作.
比如需要跳转页面可以把code约定为2,data里面放跳转的url. -
Ajax调用是在JS中跳转的,不是在Php中:
$.ajax({ url:'/users/data-user', type:'post', dataType:'json', data:{"_csrf": "<?= Yii::$app->request->getCsrfToken()?>"}, success:function(result){ if(result.error!=''){ alert('error:'+result.error); location.href='users/index';//此处跳转页面 }else{ $('#userData').html(result.data); } }, error:function(xhr,txtStatus){ }, complete:function(xhr,txtStatus){ } });
/users/data-user.php
...... //返回错误信息$error,让前端进行跳转,为空则不跳转: return $this->asJason(['data'=>$data,'error'=>$error]);
-
-
xjcallen 东莞
注册时间:2017-01-10
最后登录:2022-06-30
在线时长:6小时36分
最后登录:2022-06-30
在线时长:6小时36分
- 粉丝0
- 金钱175
- 威望0
- 积分235