遇到此问题的背景:项目需要实现单点登录,在前后端分离的前提下,前台如何保存token值成为了一个问题。想到的解决方案是,将token值统一存到一个前端程序,其他的前端程序去这个前端程序去取token(其他更好的解决方案欢迎指导~~)。在项目用angular的情况下,选择了以下插件:angular-cross-storage,此插件可以实现跨域存取localStorage,操作非常简单,都有demo。

通常情况下,设置HTTP的authorization只需在congfig中进行如下配置:

var app = angular.module("myApp",[]);
app.config(function($httpProvider) { 
  $httpProvider.defaults.headers.common["Authorization"] = 所需带的权限; 
});

但是在此处,权限值是存在另一个前端程序的token值,获取权限token值是异步请求,并不能确定在何时能完成,说不定还没得到token值,页面已经发出了http请求,而这个没设置Authorization的请求,势必会返回401。

So 先要设置一个拦截器,并在拦截器里设置请求头,代码如下:

延伸阅读

学习是年轻人改变自己的最好方式-Java培训,做最负责任的教育,学习改变命运,软件学习,再就业,大学生如何就业,帮大学生找到好工作,lphotoshop培训,电脑培训,电脑维修培训,移动软件开发培训,网站设计培训,网站建设培训学习是年轻人改变自己的最好方式