Yii2中redirect ajax请求不跳转
18-04-03 11:23
字数 829
阅读 4767
现有逻辑是后台不登录的情况下所有请求都跳转到登录页。
public function beforeAction($action)
{
if (Yii::$app->user->getIsGuest() && !in_array($action->id, self::$ignoreList)) {
$this->redirect(Yii::$app->user->loginUrl);
}
return parent::beforeAction($action);
}
这么写在不是ajax请求的情况下是好用的。但是如果是ajax请求,这么写就不行了。所以修改如下。
public function beforeAction($action)
{
if (Yii::$app->user->getIsGuest() && !in_array($action->id, self::$ignoreList)) {
$this->redirect(Yii::$app->user->loginUrl)->send();
}
return parent::beforeAction($action);
}
加上send方法后发现ajax请求竟然正常跳转了,这特么太神奇了啊。后来发现YII2在相应体中放了一个X-Redirect
,值就是登录地址。
那么浏览器是怎么根据这个X-Redirect
跳转的呢。我并没有写跳转的代码。
后天来查阅文档发现,只要你引入了·yii.js
,那么这货会帮你过滤所有的ajax请求。
function initRedirectHandler() {
// handle AJAX redirection
$(document).ajaxComplete(function (event, xhr) {
var url = xhr && xhr.getResponseHeader('X-Redirect');
if (url) {
window.location.assign(url);
}
});
}
这个js里封装了一些常用的函数,还是挺方便的。
0人点赞>
0 条评论
排序方式
时间
投票
快来抢占一楼吧
请登录后发表评论
相关推荐
文章归档
2024-11
1 篇
2024-06
1 篇
2024-05
2 篇
2024-04
2 篇
2024-03
2 篇
展开剩余 68 条
2024-01
1 篇
2023-10
1 篇
2023-09
1 篇
2023-08
1 篇
2023-06
1 篇
2023-04
1 篇
2022-12
2 篇
2022-06
1 篇
2022-04
4 篇
2022-03
3 篇
2022-01
6 篇
2021-12
2 篇
2021-11
2 篇
2021-10
2 篇
2021-09
1 篇
2021-08
2 篇
2021-07
4 篇
2021-06
1 篇
2021-05
3 篇
2021-04
3 篇
2021-01
2 篇
2020-11
1 篇
2020-10
3 篇
2020-09
2 篇
2020-08
1 篇
2020-07
5 篇
2020-06
5 篇
2020-05
1 篇
2020-04
1 篇
2020-03
2 篇
2020-02
3 篇
2020-01
1 篇
2019-11
5 篇
2019-10
10 篇
2019-09
12 篇
2019-08
17 篇
2019-07
8 篇
2019-05
3 篇
2019-04
8 篇
2019-03
7 篇
2019-02
8 篇
2019-01
5 篇
2018-12
7 篇
2018-11
8 篇
2018-10
4 篇
2018-09
7 篇
2018-08
12 篇
2018-07
9 篇
2018-06
6 篇
2018-05
11 篇
2018-04
18 篇
2018-03
1 篇
2018-02
2 篇
2018-01
10 篇
2017-12
14 篇
2017-11
44 篇
2017-10
13 篇
2017-09
4 篇
2017-08
12 篇
2017-07
5 篇
2017-06
4 篇
2017-05
2 篇
2017-04
3 篇
2017-03
9 篇
2017-02
3 篇
2017-01
2 篇
2016-12
10 篇
2016-11
4 篇
最新文章
最受欢迎
11-07 19:00
06-26 11:51
05-17 17:08
05-17 10:59
04-11 17:05
13 评论
11 评论
10 评论