angularjs的config和interceptor - session注入
config
这个要从config的正确使用说起,也许你想在config某个provider的时候注入$rootscope, 但是这是不允许的,我们细看下面的特性

session注入
每个请求自带sessionid,要实现这种功能就要用到interceptor,而不是用config配置ng-resource往里面添加参数 - config是在服务加载前提供配置参数个性化服务实例
angular.module("secu.services")
.factory('HttpInterceptor', ['$q', '$state',
function($q, $state) {
return {
request: function(config) {
// config.headers['x-session-token'] = localStorage.getItem('sessionid');
if (localStorage.getItem('sessionid')) {
//1. post data
// config.data=config.data||{};
// config.data['session_id'] = localStorage.getItem('sessionid');
//2. get parameters
config.params=config.params||{};
config.params['session_id'] = localStorage.getItem('sessionid');
}
// console.log('config: ',config);
return config;
},
requestError: function(err) {
return $q.reject(err);
},
response: function(res) {
if (res.data && res.data.code) {
switch (res.data.code) {
case '000':
return res
case '100':
alert(res.data.msg)
return res
case '200':
console.log(res.data.msg)
$state.go('login')
break
}
}
return res
},
responseError: function(err) {
if (-1 === err.status) {
// 远程服务器无响应
} else if (500 === err.status) {
// 处理各类自定义错误
} else if (501 === err.status) {
// ...
}
return $q.reject(err);
}
};
}
])
.config(['$httpProvider',
function($httpProvider) {
$httpProvider.interceptors.push('HttpInterceptor');
}
])
### x-session-token in header
现在多数网站都是用token作为认证,而非cookiebase的sessionid
angularjs的config和interceptor - session注入的更多相关文章
- AngularJS学习--- AngularJS中XHR(AJAX)和依赖注入(DI) step5
前言:本文接前一篇文章,主要介绍什么是XHR,AJAX,DI,angularjs中如何使用XHR和DI. 1.切换工具目录 git checkout -f step- #切换分支 npm start ...
- AngularJS开发指南14:依赖注入
推荐两种使用场景: 1.控制器中的依赖注入 控制器是负责应用行为的类.推荐的控制器声明方法如下: var MyController = function(dep1, dep2) { ... } MyC ...
- AngularJS(十):依赖注入
本文也同步发表在我的公众号“我的天空” 依赖注入 依赖注入不是AngularJS独有的概念,而是现代软件开发与架构的范畴,但是在AngularJS中“依赖注入”是其核心思想之一,所以我们专门来学习一下 ...
- AngularJS源码分析之依赖注入$injector
开篇 随着javaEE的spring框架的兴起,依赖注入(IoC)的概念彻底深入人心,它彻底改变了我们的编码模式和思维.在IoC之前,我们在程序中需要创建一个对象很简单也很直接,就是在代码中new O ...
- 非spring组件servlet、filter、interceptor中注入spring bean
问题:在filter和interceptor中经常需要调用Spring的bean,filter也是配置在web.xml中的,请问一下这样调用的话,filter中调用Spring的某个bean,这个be ...
- angularjs MVC、模块化、依赖注入详解
一.MVC <!doctype html> <html ng-app> <head> <meta charset="utf-8"> ...
- Angularjs中config中置入以下拦截器
$httpProvider.interceptors.push(['$rootScope', '$q', '$localStorage', function ($rootScope, $q, $loc ...
- Natas21 Writeup(共用session、session注入)
Natas21: 第一个网页 第二个网页 提示http://natas21.natas.labs.overthewire.org/页面和http://natas21-experimenter.nata ...
- Angularjs学习笔记(三)----依赖注入
一.定义 如前所述,$scope对象被神秘的注入到了控制器中,实际上,这是因为控制器声明了它需要$scope,所以AngularJS才会创建并注入它.这套依赖管理系统可以这样总结:"为了正常 ...
随机推荐
- 【Devops】【Jenkins】Jenkins插件安装失败处理方法
本篇解释:Jenkins插件安装失败处理方法 不论是刚启动成功后进行的推荐插件安装,还是后期使用Jenkins过程中进行插件的安装.出现插件安装失败的问题,可以通过本篇解决! [注意,插件下载安装失败 ...
- 平台升级至nginx+Tomcat9.0.1(Spring5.0.1+velocity2.0+quartz-2.3.0)+redis集群
在公司部份应用上 使用了 Tomcat9.0.1 稳定性还可以,由于将公司的集群服务也升级为 Tomcat9.0.1,下面我们来谈一下改变: 1:logging.properties 支持日志最大天数 ...
- 从源码角度一步一步来修改PreferenceActivity界面
PreferenceActivity给我们封装好了一个数据存储对象,我们只需要在xml文件中写上控件即可完成简单的设置界面.但是系统提供的设置界面十分的简陋,要想做的好看必须要自己来进行修改 ...
- SVG.js 颜色渐变使用
一.SVG.Gradient 1.线性渐变.径向渐变,设置渐变的起始点,设置径向渐变的外层半径 var draw = SVG('svg1').size(300, 300); //SVG.Gradien ...
- Java反编译工具Jad详解
做项目过程中需要反编译一个jar包,于是作了一些学习,记录下来. Jad(JAva Decompiler)是一个Java的反编译器,可以通过命令行把Java的class文件反编译成源代码. 如果你在使 ...
- 【VC++积累】之八、PreTranslageMessage;TranslageMessage;GetMessage和PeekMessage的区别
先来看windows消息机制: 首先系统(也就是windows)把来自硬件(鼠标,键盘等消息)和来自应用程序的消息 放到一个系统消息队列中去. 而应用程序需要有自己的消息队列,也就是线程消息队列,每一 ...
- [数学] 将长为L的木棒随机折成3段,则3段构成三角形的概率
1.题目 如题,将长为L的木棒随机折成3段,则3段构成三角形的概率是多少? 2.解析 这个与其说是编程题目,倒不如说是个数学题目.可能是你没有见过,或者没有过这种解题思想.(还是那句,一回生两回熟,类 ...
- iOS开发调试篇—Print Description of "string"
Print Description of "string":把 string 的信息输出到控制台.Copy:复制 string 的信息,包含变量名,类名和值.View Value ...
- extern外部方法使用C#简单例子
外部方法使用C#简单例子 1.增加引用using System.Runtime.InteropServices; 2.声明和实现的连接[DllImport("kernel32", ...
- 详解Vue中的nextTick
Vue中的nextTick涉及到Vue中DOM的异步更新,感觉很有意思,特意了解了一下.其中关于nextTick的源码涉及到不少知识,很多不太理解,暂且根据自己的一些感悟介绍下nextTick. 一. ...