水富县建设局网站,软件定制开发服务税率,安徽省教育基本建设学会网站,深圳市福田区本章目录#xff1a;
问题描述 AJAX请求后端直接重定向失败解决方案 后端拦截请为响应头添加重定向标志后端拦截器为响应头添加重定向路径前端响应拦截器获取响应头数据#xff0c;并通过location.href url 完成页面跳转一、问题描述
本来想在拦截器里设置未登录用户访问指…本章目录
问题描述 AJAX请求后端直接重定向失败解决方案 后端拦截请为响应头添加重定向标志后端拦截器为响应头添加重定向路径前端响应拦截器获取响应头数据并通过location.href url 完成页面跳转一、问题描述
本来想在拦截器里设置未登录用户访问指定接口时跳转到登录页面。 结果发现前端请求到的res如下图所示只返回了登录页的样式并没有完成浏览跳转 通过查阅资料了解ajax是一种异步http请求方式它可以在不刷新页面的情况下向后台发送请求并获取响应数据但是它不能自动进行页面重定向。 二、解决方案
修改拦截器逻辑未登录用户不直接重定向登录页面。
当未登录用户访问指定接口时在响应头里添加“我要重定向”的标志并且添加重定向后的地址返回给前端前端请求接口后搜寻到我要重定向标志后拿着对应的地址去完成页面跳转即可。
拦截器代码 前端请求后的获取的响应头 在axios的响应拦截器内判断响应头 axios.interceptors.response.use(function (response) {// 判断响应头内是否有重定向标志if(response.headers.redirect null){return response.data} else {//响应头内的重定向地址location.href response.headers.redirecturl}if (!response.data.success) {return Promise.reject(response.data.errorMsg)}return response.data;
}如此通过前端的location.href即可完成页面的重定向 总结
后端拦截请为响应头添加重定向标志后端拦截器为响应头添加重定向路径前端响应拦截器获取响应头数据并通过location.href url 完成页面跳转