最近在做的一个前后端分离的一个项目,这就涉及到登录验证的问题。我用的是token加上filter。
1,前端请求登录的时候,用用户名和加上当前时间生成一个token,存入redis,然后返回给前端。
2,以后每次请求前端带上token,在filter里做验证。
3,判断token是否有效,有效则放行,无效则重定向到登录页面。
这就存在一个问题,ajax请求返回的json数据或者html.默认的是局部刷新页面。sendRedirect(“XXX”)重定向无效。
解决办法是前后台配合。
在filter里面加上如下
java
httpResponse.addHeader("REDIRECT", "REDIRECT");//告诉ajax这是重定向
httpResponse.addHeader("CONTEXTPATH", tokenUrl);//重定向地址

这时候响应头中就会出现如下两行
然后前端代码如下:

$.ajaxSetup({complete : function(XMLHttpRequest, textStatus) {    // 通过XMLHttpRequest取得响应头,REDIRECT      var redirect = XMLHttpRequest.getResponseHeader("REDIRECT");//若HEADER中含有REDIRECT说明后端想重定向    alert(redirect);if (redirect == "REDIRECT") {  var win = window;      while (win != win.top){    win = win.top;    }  win.location.href= XMLHttpRequest.getResponseHeader("CONTEXTPATH");}  }});

ajaxSetup的使用方百度强调内容
网上大概也就是这些思路。但是还有一个坑,
XMLHttpRequest.getResponseHeader(“XXX”),通过CORS方式解决的ajax跨域,是获取不到请求头的。getResponseHeader的值一直为空。
要通过Access-Control-Expose-Headers来设置响应头的白名单。
httpResponse.addHeader(“Access-Control-Expose-Headers”, “REDIRECT,CONTEXTPATH”);将想要传递的字段设置一下。才能获取到值。

前后端分离 ajax请求后台重定向相关推荐

  1. 前后端分离 AJAX 文件下载解决方案

    [场景描述] 微服务架构中,使用前后端分离设计,用户点击导出下载Excel列表,通过AJAX与后端SpringMVC交互获取下载文件,请求需要携带Authorization认证信息,并且需要考虑到IE ...

  2. springboot前后端分离 前端请求图片问题

    1.前后端分离的情况下,前端通过服务器请求后端图片,通常是后端把图片放在服务器上的指定文件夹中,然后写一个配置类,前端访问后端数据库的图片路径,然后后端在配置文件中做文件映射,前端访问数据库的图片路径 ...

  3. 【官方推荐】Laravel7 + Vue2.0前后端分离框架通用后台源码

    laravel7 + vue + element-ui的后台极速开发框架,采用前后端分离架构,安全性 (JWT 校验.中间件.验证器.路由.异常处理.权限控制) 网址:http://139.155.4 ...

  4. springboot+vue前后端分离项目(后台管理系统)

    学习笔记 学习资源来自于B站UP,up他讲的非常详细,对于熟悉两大框架很有用. 我的作业源代码在文章末尾,欢迎有需要的同学,学习参考使用,内置SQL文件,导入后,开启springboot和vue服务即 ...

  5. vuejs2.0 vsCode router前后端分离权限 vueAdmin后台基础模板

    感觉不错的开源项目,所以搜集资料来细致的剖析,帮助更多人尽快步入后台系统的开发,其实后台项目有两个最基础最重要的东西就是:权限验证和安全性,关于VSCode是最近很火的编辑器不做过多说明,下面的参考资 ...

  6. springboot+vue前后端分离项目(后台管理系统

    2.注册页面这两个页面可以自由切换 3.root登录后的默认页面以及高亮显示 4.几个页面的展示 ![在这里插入图片描述](https://img-blog.csdnimg.cn/04b499bfbf ...

  7. django3,vue前后端分离数据请求

    下面使用vue2的写法,因为vue3也支持vue2的编写方法 运行django后端项目,端口需要设置为和前端项目不同 (luichun) [dalaojun@localhost dalaojun]$ ...

  8. 开源项目:时光后台管理系统 前后端分离项目,后台系统模板 时光大魔王

    最近对自己的之前开源项目进行优化,发现每个项目的后台管理系统都有大大小小的Bug和之前没考虑到的优化,于是这段时间重新从零构建了Vue2后台管理系统模板. 作者:时光 | 当前版本:v1.0.6 前端 ...

  9. php 完全前后端分离使用jwt,larke-admin 是一套使用 Laravel 8 、JWT 和 RBAC鉴权的前后端分离的通用后台管理系统...

    StarLong (作者) 3周前 @deatil [stacktrace] #0 E:\PHPstudy\phpstudy_pro\WWW\laravel8\vendor\symfony\conso ...

最新文章

  1. iOS 模仿支付宝支付到账推送,播报钱数
  2. linux下防DDOS***软件及使用方法详解
  3. 使用SD-WAN策略与传统路由器的OFFICE 365配置
  4. print python 如何加锁_深度解密Python单例模式
  5. 商品规格js_品优购电商系统开发 第3章 规格及模板管理
  6. 亚马逊面试有几轮_经过几个月的Google面试准备,我被亚马逊录用
  7. python 面向对象编程简称_Python基础-面向对象编程
  8. asp 不能读取mysql 长文本文件,从文本文件中读取信息并存储入数据库_asp技巧
  9. 好程序员大数据教程分享之Hadoop优缺点
  10. 腾讯加持,雷军力荐,这款游戏手机要火?
  11. 前端特效demo | 一起围观 10 种创意时钟
  12. JMeter循环控制器循环次数使用变量控制注意事项
  13. 英特尔中国研究院院长宋继强:摩尔定律的经济效益仍在继续
  14. 给定一个净值序列,计算年化收益、最大回撤、夏普比率
  15. 4k hidpi 黑苹果_黑苹果如何通过开启HIDPI来增强显示效果?
  16. 蓝桥杯python组——明码
  17. Python切图九宫格
  18. 项目管理有妙招,看懂你的项目健康状态和完整度
  19. 中信银行计算机岗位面试自我介绍,中信银行面试自我介绍
  20. 根据脸部毛孔生长方向去护肤

热门文章

  1. 杀鸡用牛刀:Sketch流程图绘制体验
  2. PIE Engine下载高分影像|以高分一号为例
  3. 树莓派3SD卡格式化-Windows下利用SDFormatter格式化SD卡
  4. python是什么软件是电脑系统自带的软件吗_用Python编写桌面软件系统的步骤是什么?...
  5. java方法触发器,Quartz.Net任务和触发器实现方法详解
  6. QT基于QPolarChart封装一个极坐标系类(控件显示)
  7. 基于LaTeX-OCR公式转换工具的安装与使用
  8. Python之查询天气小程序
  9. 阿里程序媛凉安成长记:现世安稳,线上安稳
  10. java maven 打可执行包