如果你在服务器端的标头中放置一个 cookie,AngularJS 将一直发送这个 cookie。你无事可做。
如果您想在 Header 中传递令牌而不是在 Angular 端的 cxookie 中,只需执行以下操作:$httpProvider.defaults.headers.common['X-Auth'] = yourKey;
在您的配置块中。
然后,如果您想知道用户是否已登录或者他是否拥有权限,只需实现一个拦截器。这是一个简单的工厂,您将始终在您的配置块中推送 responseIntercetors。
该工厂将侦听来自服务器的每个响应,并在他的实现中检查错误情况下响应的状态代码:
401 --> 未记录 403 --> 未授权
工厂示例:
myModule.factory('myHttpInterceptor', function ($q) {
return function (promise) {
return promise.then(function (response) {
// do something on success
return response;
}, function (response) {
// do something on error
//check status 401 or 403
return $q.reject(response);
});
};
});
然后将您的工厂放在配置块中的 http responseIntercetors 中,如下所示:
myModule.config(function ($httpProvider) {
$httpProvider.responseInterceptors.push('myHttpInterceptor');
});
请记住,AngularJS 1.1.4 已弃用此解决方案(仍然不稳定)...
工厂必须有所不同,请参阅这篇文章以获取更多信息:AngularJS 拦截所有 $http JSON 响应
希望能帮助到你