angular拦截器拦截ajax,angular 用拦截器统一处理http请求和响应 比如加token

想使用angularjs里的htpp向后台发送请求,现在有个用户唯一识别的token想要放到headers里面去,也就是{headres:{'token':1}}

index.html里引入以下js:

angular.module('app.factorys',[])

.factory('httpInterceptor',['$q','$injector','$localStorage',function ($q,$injector,$localStorage) {

var httpInterceptor = {

'responseError' : function(response) {

// ......

return $q.reject(response);

},

'response' : function(response) {

if (response.status == ) {

// console.log('do something...');

}

return response || $q.when(response);

},

'request' : function(config) {

config.headers = config.headers || {};

if ($localStorage.token) {

config.headers.token = $localStorage.token;

// config.headers['X-Access-Token'] = $localStorage.token;

};

return config || $q.when(config);

return config;

},

'requestError' : function(config){

// ......

return $q.reject(config);

}

};

return httpInterceptor;

}])

在app里注入factory后,在config里面配置

.config(['$httpProvider',function(){

$httpProvider.interceptors.push(httpInterceptor);

}])

如果你的代码并未做拆分,可以直接在config里面写拦截器

$httpProvider.interceptors.push(['$q','$injector','$localStorage',function ($q,$injector,$localStorage) {

var httpInterceptor = {

'responseError' : function(response) {

// todo...

return $q.reject(response);

},

'response' : function(response) {

if (response.status == ) {

// console.log('do something...');

}

return response || $q.when(response);

},

'request' : function(config) {

config.headers = config.headers || {};

if ($localStorage.token) {

config.headers.ut = $localStorage.token; //把你登录接口返回给你的token存到$localStorage里面,在这里取就好了

// config.headers['X-Access-Token'] = $localStorage.token;

};

return config || $q.when(config);

// return config;

},

'requestError' : function(config){

// todo...

return $q.reject(config);

}

};

return httpInterceptor;

}]);

ionic2+Angular 使用HttpInterceptorService拦截器 统一处理数据请求

sstep1:新建http-Interceptor.ts文件 import { Injectable } from '@angular/core'; import { HttpInterceptorS ...

AngularJS 拦截器实现全局$http请求loading效果

日常项目开发中,当前端需要和后端进行数据交互时,为了友好的UI效果,一般都会在前端加个loading的状态提示(包括进度条或者icon显示),数据传输或交互完成之后,再隐藏/删除loading提示. ...

axios封装,使用拦截器统一处理接口

1.项目路径下,引入axios.qs依赖 npm install axios npm install qs 2.在项目的src路径下新建一个commJs文件夹,在commJs文件夹里新建aps.js和 ...

Struts2 在登录拦截器中对ajax请求的处理

前言: 由于ajax请求不像http请求,可以直接进行页面跳转,你返回的所有东西,ajax都只会识别为一个字符串. 之前尝试的方法是在拦截器中返回一个标识给ajax,然后再在每一个ajax请求成功之后 ...

Okhttp拦截器统一异常处理并多次读取response.body().string()

参考:https://blog.csdn.net/a624806998/article/details/73863606 引言: 写这篇文章,因为在自己编写实现Http日志拦截器的时候,在拦截器中使用 ...

AngularJS 用 Interceptors 来统一处理 HTTP 请求和响应

Web 开发中,除了数据操作之外,最频繁的就是发起和处理各种 HTTP 请求了,加上 HTTP 请求又是异步的,如果在每个请求中来单独捕获各种常规错误,处理各类自定义错误,那将会有大量的功能类似的代码 ...

java拦截器与过滤器打印请求url与参数

HttpServletRequest httpServletRequest = (HttpServletRequest) request; HttpServletResponse httpServle ...

axios 拦截器统一在接口增加时间戳参数,防止走缓存。

request.interceptors.request.use( config => { if (config.method == 'post') { config.data = { ...c ...

vue 的全局拦截器

使用拦截器 你可以截取请求或响应在被 then 或者 catch 处理之前 mounted:function(){ Vue.http.inserceptors.push(function(resque ...

随机推荐

IOS开发之绝对布局和相对布局(屏幕适配)

之前如果做过Web前端页面的小伙伴们,看到绝对定位和相对定位并不陌生,并且使用起来也挺方便.在IOS的UI设计中也有绝对定位和相对定位,和我们的web前端的绝对定位和相对定位有所不同但又有相似之处.下 ...

【转】linux设备驱动程序之简单字符设备驱动

原文网址:http://www.cnblogs.com/geneil/archive/2011/12/03/2272869.html 一.linux系统将设备分为3类:字符设备.块设备.网络设备.使用 ...

javascript笔记整理(流程控制)

流程:就是程序代码的执行顺序 流程控制:通过规定的语句让程序代码有条件的按照一定的方式执行 1.顺序结构(按照书写顺序来执行,是程序中最基本的流程结构) 2.选择结构(分支结构.条件结构):根据给定的 ...

C++ Primer 学习笔记_29_STL实践与分析(3) --操作步骤集装箱(下一个)

STL实践与分析 --顺序容器的操作(下) 六.訪问元素 假设容器非空,那么容器类型的front和back成员将返回容器的第一个和最后一个元素的引用. [与begin和end的对照:] 1)begin ...

修改nagios密码和遇到的问题

htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin 密码 密码 service httpd restart 由于本屌丢掉一个s使/ ...

【RF库Collections测试】Remove From List

Name:Remove From ListSource:Collections Arguments:[ list_ | index ]Removes and r ...

Oracle案例10——HWM(高水位线)性能优化

最近BI同事反馈说一张表的数据查询非常慢,这个表数据总共不到1W行数据,这么一说我们首先想到的是高水位带来的性能问题,即高水位线下占用过多数据块,而这些数据块其实是部分数据占用,大多数是空闲的数据块. ...

【SSH网上商城项目实战20】在线支付平台的介绍

转自:https://blog.csdn.net/eson_15/article/details/51441431 之前已经完成了首页的显示,用户添加购物车,确认订单等功能,下面就是支付功能的开发了. ...

JSP中include指令和include动作浅析

一. JSP工作原理 JSP文件是一种Servlet,其工作方式是先部署源代码后编译为.class文件.JSP会在客户端第一次请求JSP文件时被编译成Servlet,由Servlet处理客户端的请求. ...

jstl <;fmt:formatDate>;标签

标记用于在各种不同的方式来格式化日期 属性: 标签具有以下属性: 属性 描述 必需 默认值 value 要显示的 ...

你可能感兴趣的:(angular拦截器拦截ajax,angular 用拦截器统一处理http请求和响应 比如加token)