当前位置: 首页 > news >正文

解决后端无法对前端的ajax请求重定向

本章目录:

  • 问题描述
    • 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 完成页面跳转

 

 

 

http://www.lryc.cn/news/58287.html

相关文章:

  • 【Python】1分钟就能制作精美的框架图?太棒啦
  • 淘宝必备的补单技巧及注意事项!
  • 【实用篇】SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式,系统详解springcloud分布式
  • 私人飞机、公务机包机会成为富豪圈的主流出行方式吗?
  • Oracle组织架构
  • 最小公倍数
  • 二叉树的后序遍历(力扣145)
  • 《Effective C++》读书纪实 -- 诸君同享
  • 【云原生】K8S-ConfigMap 实现应用和配置分离
  • java -测距工具(经纬度)
  • postgres分区表的创建-基于继承
  • Docker应用部署
  • 使用golang实现日志收集系统的logagent
  • 小红书点赞不显示怎么回事?小红书笔记评论被吞怎么办
  • 地址变换和缺页置换习题
  • PAT 乙级 1010 一元多项式求导(解题思路+AC代码)
  • 一维河流污染持续排放模拟(水污染扩散)
  • 数据优化 | CnOpenDataA股上市公司招聘数据
  • nacos和eureka的区别
  • canvas.toDataURL生成图片报错的解决方案
  • 电容笔和Apple pencil的区别是什么?好用电容笔推荐
  • 关于onnx 转ncnn 的问题
  • 设计模式之《责任链模式》
  • Android Studio实现多功能日记本
  • 只依赖Tensorrt和opencv的yolov5源代码
  • 多路I/O转接 poll(了解)
  • 听说你也在为配置tomcat server而烦恼,看我这一篇,让你醍醐灌顶!
  • 【从零开始学Skynet】工具篇(二):虚拟机文件的复制粘贴
  • 全球自动驾驶竞争力最新排行榜,4家中国企业上榜
  • APP启动流程分析