cas登录成功后转发到service参数定义的地址后使用ajax还是没权限请求接口,出现302,然后使用浏览器直接访问就有权限访问,再次刷新原来的页面发现这个接口有权限访问了,所以我先通过动态iframe标签发送向cas登录请求,再通过ajax获取数据。
解决方法:
methods:{
iframeReady(iframe, fn) {
if (iframe.attachEvent) {
iframe.attachEvent("onload", function () {
fn && fn.call(iframe);
});
} else {
iframe.onload = function () {
fn && fn.call(iframe);
};
}
},
getInfo() { // 获取用户登录信息
let $this = this;
$.ajax({
url: "/api/designe",
dataType: "JSON",success: function (data) {
},
error: function (err) {
var myFrame = document.createElement('iframe');
myFrame.src = 'http://cas.xxx.com/login?service=xxx';
myFrame.style.display = "none"
document.body.appendChild(myFrame);
$this.iframeReady(myFrame, function backCall() {
$.ajax({
url: "/api/designe",
dataType: "JSON",
success: function (data) {
}
})
})
}
})
},
},