java ajax无权限跳转_ajax请求重定向后页面不跳转问题 (使用拦截器)
一、ajax重定向的问题。
默认ajax是不支持重定向的,因为ajax本身就是局部刷新,不重新加载页面的。如果需要用到重定向可以通过以下方法:
第一步:后端代码改造。
在后端(大部分情况都是拦截器)中判断是否需要重定向。
Eg:session过期判断,当判断session已经过期了,就先判断此次请求是否是ajax的请求。
方法:
@Override
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response, Object arg2) throws Exception {
User u = (User) request.getSession().getAttribute("USER");
String type = request.getHeader("X-Requested-With");// XMLHttpRequest
if (u == null) {
// 重定向
String path = request.getContextPath();
String basePath = request.getScheme() + "://"+ request.getServerName() + ":" + request.getServerPort()+ path + "/";
//response.sendRedirect(contextPath+"/index.jsp");
// System.err.println("sendRedirect");
// 转发
if (StringUtils.equals("XMLHttpRequest", type)) {
// ajax请求
response.setHeader("SESSIONSTATUS", "TIMEOUT");
response.setHeader("CONTEXTPATH", basePath+"index.jsp");
response.setStatus(HttpServletResponse.SC_FORBIDDEN);
return false;
} else {
response.sendRedirect(basePath+"index.jsp");
return false;
}
}
return true;
}
第二步:前段改造ajax属性。
通过$.ajaxSetup()方法给ajax方法统一添加请求执行结束后,执行的操作。
$.ajaxSetup( {
//设置ajax请求结束后的执行动作
complete :
function(XMLHttpRequest, textStatus) {
// 通过XMLHttpRequest取得响应头,sessionstatus
var sessionstatus = XMLHttpRequest.getResponseHeader("sessionstatus");
if (sessionstatus == "TIMEOUT") {
var win = window;
while (win != win.top){
win = win.top;
}
win.location.href= XMLHttpRequest.getResponseHeader("CONTEXTPATH");
}
}
});
java ajax无权限跳转_ajax请求重定向后页面不跳转问题 (使用拦截器)相关推荐
- java ajax无权限跳转_如何在ajax权限判断后跳转?
经常会遇到一种场景,直接访问某些权限被拒绝后跳转登陆页面,然而ajax不会跳转 这个时候使用全局的: $(function(){ //全局的ajax访问,处理ajax清求时sesion超时 $.aja ...
- Ajax请求成功后页面跳转
文章目录 Ajax实现页面局部刷新 Ajax请求成功后页面跳转 Ajax实现页面局部刷新 这里通过点击一个按钮,然后下面产生一段文字,而整个页面不用刷新 <!DOCTYPE html> & ...
- 【Java EE (Struts2 + Spring + Hibernate)开发】:Struts2(二)之【拦截器机制】
[Java EE (Struts2 + Spring + Hibernate)开发]:Struts2(二)之[拦截器机制] 本文地址:http://blog.csdn.net/shanglianlm/ ...
- java ajax无刷分页_简单实现Ajax无刷新分页效果
Ajax无刷新分页效果,如下代码实现 Ajax无刷新分页效果 function showpage(url) { var xhr = new XMLHttpRequest(); xhr.onreadys ...
- 请求转发、请求重定向与页面跳转问题
请求转发 请求转发是服务器行为,即用户向服务器发送了一次http请求,该请求可能会经过多个信息资源处理以后返回给用户,各个信息资源使用请求转发机制互相转发请求,从用户的感官上来看,是感觉不到请求转发的 ...
- ajax请求成功后打开新开窗口(window.open())被拦截的解决方法
问题:今天在做项目时需要在ajax请求成功后打开一个新的窗口,此时遇到浏览拦截了新窗口的问题,尝试在ajax 回调函数中模拟执行 click 或者 submit 等用户行为(trigger('clic ...
- java中注解动态传参_SpringMVC之注解、传参、返回值及拦截器
1. 注解式开发之annotation-driven解释 (1) mvc注解驱动在哪个文件中配置? Springmvc.xml (2) 配置mvc注解驱动使用哪个标签? 2. 注解式开发之视图解析器 ...
- html 自动跳转手机版,HTML实现页面自动跳转的五种方法
在上篇文章给大家介绍了HTML页面3秒后自动跳转的三种常见方法,本文继续给大家介绍有关html页面跳转相关知识,一起学习吧. 下面列了五个例子来详细说明,这几个例子的主要功能是:在5秒后,自动跳转到同 ...
- ajax 执行成功 modal 关闭_Ajax请求中的async:false/true的作用
前言: 昨天在做倒计时修改的时候,发现多次点击按钮,我明明做了限制,点击多次的时候发现怎么都会请求了两次,然后我写的是请求成功添加文字,结果总是会添加两次文字, 说明ajax请求了两次了,在网上查了下 ...
最新文章
- 张量解释——深度学习的数据结构
- luogu P6113 【模板】一般图最大匹配(带花树)
- java代码内创建mysql索引_Java Mysql数据库创建视图、索引、备份和恢复
- R package XML安装
- ubuntu 上网总结
- MATLAB基础教程(6)——使用matlab求解线性方程组
- Elasticsearch 2.3.0 重建索引
- 基于Raspbian(树莓派)搭建web安全练习环境(一)
- 2014年计算机求职总结--准备篇
- Echarts-地图扩展-标准geoJson格式扩展地图-例子
- 为了方便手机观看,博文最好36个字一行
- ArcGIS教程:空间参考和地理处理
- IOUtils工具类简介及应用
- data fastboot 擦除_安卓刷机 - Fastboot命令
- Java零基础学习-每日单词(日更)
- linux服务器系统时间和bios时间,Linux系统时间, 硬件BIOS时间的校准与同步
- 4g数据需要排序计算机内存,20 亿个数字在 4G 内存中如何去重排序:快来试一试 BitMap...
- 2017多校第4场 HDU 6078 Wavel Sequence DP
- python检测微信好友被删被拉黑_如何用Python,查看是否被微信好友删除
- 全新安装Windows10系统(PE下)