本文介绍: 设置Cookie进行统一拦截,使全局都携带Cookie,便于系统中权限的控制展示。在系统的main.js文件中设置:其中this.setRequestHeader的Authorization为cookie中存储的token。在cookie中存储token的具体方法详见:/*全局设置ajax请求拦截*/hookAJAX()function hookAJAX () { XMLHttpRequest.prototype.nativeOpen = XMLHttpRequest.prototy
设置Cookie进行统一拦截,使全局都携带Cookie,便于系统中权限的控制展示。
其中this.setRequestHeader的Authorization为cookie中存储的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“这一错误,且总是跳转至登录页面。解决办法为过滤到需要做权限的token的url,代码如下:
/*全局设置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进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。