jQuery和vue 设置ajax全局请求
一个很常见的问题,如果用户登录网站session过期,需要用户返回登录页面重新登录。
如果是http请求可以在后台设置拦截器,统一拦截并跳转。但是ajax方法并不能通过后台直接跳转。
所以我们可以写一个ajax全局方法,让每一个ajax请求都访问这个方法,如果经过判断session过期,可以跳转到登录页面。
以下是引用jQuery的ajax全局方法:
$.ajaxSetup({ error : function(x, status, e) { if (x.status == '403') { alert('您没有权限执行当前操作!'); } else { console.log('系统错误,请联系管理员!'); } return false; }, complete : function(r, s) { var istimeout = r.getResponseHeader('sessionstatus')=='timeout'; if (istimeout) { //alert(r.responseText); var loginurl = r.getResponseHeader("loginurl"); parent.window.location = loginurl; } } });
我当时做这个项目的时候还用到了vue,所以把vue的ajax全局方法也写一下
Vue.http.interceptors.push(function(request) { // modify request request.method = 'POST'; // return response callback return function(response) { var sessionAjax = response.headers.map.sessionstatus; if (sessionAjax != undefined) { var loginurl = response.headers.map.loginurl[0]; parent.window.location = loginurl; } }; });
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人