`

vue-resource拦截器实现token发送及检验自动化

阅读更多
  用了很长时间vue-resource,最近思考$http发送请求时,如何自动上传token、自动处理token非法时页面跳转时,才发现vue-resource竟然有拦截器(interceptors)机制,可以完美地解决这个问题。
  代码很简单,不做过多解释。
<!DOCTYPE html>
<!-- 
vue-resource拦截器测试页面
http://wallimn.iteye.com
 -->
<html>
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
	<title>vue-resource.interceptors</title>
</head>
<body class="main">

<div id="app">


</div>
 
 
 
 
    <script type="text/javascript" src="../res/lib/vue.js"></script>
    <script type="text/javascript" src="../res/lib/vue-resource.js"></script>

	<script type="text/javascript">
		//拦截器使用示例
		//注册拦截器
		Vue.http.interceptors.push(function(request, next) {
			var token = sessionStorage.getItem('token');
			if(token){
				//不知是Bearer;还是Bearer半角空格,网上两种写法都有。
				request.headers.set('Authorization','Bearer;' + token);
				//下面这个方法不正确。浏览器控制台或后台服务程序均无法看到传递值
				//request.headers.Authorization = 'Bearer;' + token;
			}
			console.log("拦截器输出,请求参数:",request.body?request.body:request.params);
			next(function(response){
				console.log("拦截器输出,返回状态:",response.status);
				if (response.status === 401) {
					window.location.href = '../public/login.html';
				}
			});
		});
		
		// Vue实例化
		var doit = new Vue({
			el:'#app',
			data: {},
			methods: {
				//测试拦截器,服务正常响应
				testinterceptors: function(){
					this.$http.get("../api/02/test/version").then(function(res){
						;
					});
				},
				//测试发生异常页面跳转,后台服务抛出异常
				testexception: function(){
					this.$http.get("../api/02/test/exception").then(function(res){
						;
					});
				}
			}			
		});
		
		doit.testinterceptors();
 
	</script>
    
    
    
</body>
</html>
分享到:
评论

相关推荐

    前端项目-vue-resource.zip

    5. 使用拦截器:Vue-resource还支持设置请求和响应拦截器,可以用于添加额外的逻辑,如处理认证、添加通用的请求头或者统一处理错误等。 6. 注意事项:Vue-resource自Vue 2.5版本后已被官方弃用,推荐使用axios或...

    vue-resource.js

    作用:发送http请求 特点: 1 体积小  vue-resource非常小巧,在压缩以后只有大约12KB,服务端...拦截器在一些场景下会非常有用,比如请求发送前在headers中设置access_token,或者在请求失败时,提供共通的处理方式。

    Vue-resource拦截器判断token失效跳转的实例

    Vue-resource拦截器判断token失效跳转的实例 本文将详细讲解 Vue-resource 中的拦截器机制,并提供一个实例,演示如何使用拦截器来判断 token 是否失效,并自动跳转到登录页面。 首先,让我们来了解什么是拦截器。...

    vue-resource 拦截器(interceptor)的使用详解

    vue-resource 拦截器...在 vue-resource 中,拦截器的使用可以帮助我们实现统一的 request 参数、处理统一的 response 错误、token 验证机制等。通过拦截器,我们可以更好地控制和处理客户端和服务器之间的交互。

    vue-resource 拦截器使用详解

    拦截器是 Vue-resource 提供的一种机制,可以在请求发送前或响应返回后执行自定义函数,从而实现全局的操作。这极大地提高了代码的可维护性和复用性。在本篇中,我们将详细介绍如何使用 Vue-resource 的拦截器处理 ...

    vue-resource拦截器设置头信息的实例

    使用vue-resource,设置头信息: Vue.http.interceptors.push((request, next)...以上这篇vue-resource拦截器设置头信息的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持软件开发网。

    使用vue-resource的get方法加载数据.zip

    此外,vue-resource支持拦截器,允许你在请求发送前或收到响应后执行某些操作。例如,全局设置一个处理所有请求的拦截器: ```javascript Vue.http.interceptors.push((request, next) =&gt; { // 在请求发送前操作,...

    vue.js_andvue-resource.zip

    5. 拦截器:vue-resource提供拦截器功能,可以在请求发送前或响应返回后进行额外操作。 虽然vue-resource不再被官方推荐,但其源码仍然具有学习价值,可以帮助开发者理解如何构建类似的HTTP库,或者了解Vue.js如何...

    谈谈Vue.js——vue-resource全攻略

    4. 提供拦截器功能:拦截器可以在请求发送前和发送请求后执行一些处理,例如在发送请求前在headers中加入access_token,或在请求失败时统一处理错误,这对于代码的复用和维护非常有帮助。 在使用vue-resource时,...

    vue-resouce设置请求头的三种方法

    在 Vue Resource 中,我们也可以使用拦截器来设置请求头。例如: ```javascript Vue.http.interceptors.push((request, next) =&gt; { request.headers.set('token', token); next((response) =&gt; { return response;...

    vue axios v0.19.2 版本,java 開發 前端 下載

    5. **响应拦截器**:Axios提供响应拦截器,可以在请求成功或失败之前处理逻辑。例如,添加响应拦截器检查状态码: ```javascript axios.interceptors.response.use( response =&gt; response, error =&gt; { if ...

    spring-security-ng-cors:使用 spring-security-csrf-token-interceptor 演示 CORS 问题的示例

    CORS 是一种允许服务器放宽同源策略限制的方法,使得前端应用(如 AngularJS、React 或 Vue.js)可以从不同的域名向服务器发送请求。在默认情况下,浏览器会阻止此类请求,除非服务器明确允许。Spring Security 提供...

    vue中Axios的封装与API接口的管理详解

    在响应拦截器中,还可以处理登录状态过期的问题,若发现返回的响应表明令牌无效,可以自动清除本地存储的token并重定向至登录页面。 `api.js`文件则负责定义所有的API接口,将每个接口封装成单独的函数,这些函数...

    Vue 请求传公共参数的操作

    总结一下,Vue和axios结合使用,利用请求拦截器可以在每个请求中自动添加公共参数,如用户令牌和ID,提高代码的可维护性和一致性。同时,通过`qs`库或`URLSearchParams`,我们可以控制axios如何处理POST请求的参数,...

    Vue二次封装axios为插件使用详解

    照例先贴上 axios 的 gitHub 地址 ... request (请求)拦截器,例如:带上token等,设置请求头 response (响应)拦截器,例如:统一错误处理,页面重定向等 根据需要,结合 Vuex 做全局的loading动画,或者错误处理

    axios全局注册,设置token,以及全局设置url请求网段的方法

    在开发Web应用时,我们...设置token则通过拦截器在请求发送前修改配置;而全局设置URL请求网段也是通过拦截器在请求发送前进行路径拼接。这些方法提高了代码的可维护性和复用性,使得我们在处理HTTP请求时更加便捷。

Global site tag (gtag.js) - Google Analytics