如果令牌未解析,如何以角度阻止所有$ http请求。 令牌存储在登录在localStorage的
我正在寻找类似
app.config("$httpInterceptor", function(){
var token = localStorage.getItem("token")
if (token == null){
//prevent all $http calls (get, post, put whatever calls)
}
})
如果令牌未解析,如何以角度阻止所有$ http请求。 令牌存储在登录在localStorage的
我正在寻找类似
app.config("$httpInterceptor", function(){
var token = localStorage.getItem("token")
if (token == null){
//prevent all $http calls (get, post, put whatever calls)
}
})
你可以拦截所有的请求,并cancell他们如果令牌未设置
angular.module('myModule', [])
.config(function($httpProvider) {
$httpProvider.interceptors.push(function($q) {
var canceler = $q.defer();
return {
'request': function(config) {
if(!window.localStorage.getItem('token')) {
config.timeout = canceler.promise; //cancelled
}
}
}
});
})
你可以拒绝请求甚至在开始之前
angular
.module('app', [])
.config(function ($httpProvider) {
$httpProvider.interceptors.push(function($q) {
return {
'request': function(config) {
if(!localStorage.getItem('token')) {
return $q.reject()
} else {
return config
}
}
}
})
})
您需要使用应用拦截器的概念。
app.factory('httpCanceller', ['$q', function($q) {
return {
'request': function(config) {
var canceler = $q.defer();
var token = localStorage.getItem("token");
config.timeout = canceler.promise;
if (!token) {
canceler.resolve();
}
return config;
}
}
}]);
app.config('$httpProvider', function($httpProvider){
httpProvider.interceptors.push('httpCanceller');
});
创建一个$ http包装/代理并添加您的支票在您的覆盖发布,获取等。 – Igor