Yii2 ajax 自动跳转至登录页面原理分析

分享 · upliu · 于 2年前 发布 · 3295 次阅读

某些路由(页面,下同)需要登录才能访问,我们通常使用访问控制过滤器(Access Control Filter)来进行处理。如果未登录用户访问对应路由,会返回 302 并带上 Lacation 的 HTTP Header,此时浏览器会跳转到对应页面。当使用 ajax 请求需要登录的路由时,页面也会跳转到登录页面。仔细查看 Response Header 会发现存在名为 X-Redirect 的 HTTP Header,yii 框架自带的 yii.js(YiiAsset ) 里有如下逻辑:

$(document).ajaxComplete(function (event, xhr, settings) {
	var url = xhr && xhr.getResponseHeader('X-Redirect');
	if (url) {
		window.location = url;
	}
});

原文地址:https://upliu.net/yii2-ajax-redirect-login-page.html

共收到 1 条回复 Ajax
forecho#12年前 0 个赞

:plus1:

添加回复 (需要登录)
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册