本文介绍: 设置Cookie进行统一拦截,使全局都携带Cookie,便于系统权限控制展示。在系统main.js文件设置:其中this.setRequestHeader的Authorizationcookie存储token。在cookie存储token的具体方法详见:/*全局设置ajax请求拦截*/hookAJAX()function hookAJAX () { XMLHttpRequest.prototype.nativeOpen = XMLHttpRequest.prototy

设置Cookie进行统一拦截,使全局都携带Cookie,便于系统权限控制展示

系统main.js文件设置

其中this.setRequestHeader的Authorizationcookie存储token

cookie存储token的具体方法详见:vue在Cookie和对localStorage的封装中存储登录用户的token、用户名等信息_刚刚好ā的博客-CSDN博客

/*全局设置ajax请求拦截*/
hookAJAX()
function hookAJAX () {
	XMLHttpRequest.prototype.nativeOpen = XMLHttpRequest.prototype.open;
	var customizeOpen = function (method, url, async, user, password) {
		// do something

			console.log(method, url, async, user, password);
			let cookie = localStorage.getItem('userToken')
			this.nativeOpen(method, url, async, user, password);
			this.setRequestHeader("Authorization", cookie);
		}


	};

	XMLHttpRequest.prototype.open = customizeOpen;
}

由于系统中有些内容需做权限展示,即获取token,而在这里是先统一全局加入token,故会出现Refused to set unsafe header “Cookie“这一错误,且总是跳转登录页面解决办法过滤需要权限的tokenurl代码如下

/*全局设置ajax请求拦截*/
hookAJAX()
function hookAJAX () {
	XMLHttpRequest.prototype.nativeOpen = XMLHttpRequest.prototype.open;
	var customizeOpen = function (method, url, async, user, password) {
		// do something

		if (url.indexOf('dologin') !== -1 || url.indexOf('localhost') !== -1 || url.indexOf('videoApplication') !== -1 || url.indexOf('smartcity') !== -1) {
			this.nativeOpen(method, url, async, user, password);
		} else {
			console.log(method, url, async, user, password);
			let cookie = localStorage.getItem('userToken')
			this.nativeOpen(method, url, async, user, password);
			this.setRequestHeader("Authorization", cookie);
		}


	};

	XMLHttpRequest.prototype.open = customizeOpen;
}

原文地址:https://blog.csdn.net/weixin_43312391/article/details/124098324

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_31590.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注