一、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请求重定向后页面不跳转问题 (使用拦截器)相关推荐

  1. java ajax无权限跳转_如何在ajax权限判断后跳转?

    经常会遇到一种场景,直接访问某些权限被拒绝后跳转登陆页面,然而ajax不会跳转 这个时候使用全局的: $(function(){ //全局的ajax访问,处理ajax清求时sesion超时 $.aja ...

  2. Ajax请求成功后页面跳转

    文章目录 Ajax实现页面局部刷新 Ajax请求成功后页面跳转 Ajax实现页面局部刷新 这里通过点击一个按钮,然后下面产生一段文字,而整个页面不用刷新 <!DOCTYPE html> & ...

  3. 【Java EE (Struts2 + Spring + Hibernate)开发】:Struts2(二)之【拦截器机制】

    [Java EE (Struts2 + Spring + Hibernate)开发]:Struts2(二)之[拦截器机制] 本文地址:http://blog.csdn.net/shanglianlm/ ...

  4. java ajax无刷分页_简单实现Ajax无刷新分页效果

    Ajax无刷新分页效果,如下代码实现 Ajax无刷新分页效果 function showpage(url) { var xhr = new XMLHttpRequest(); xhr.onreadys ...

  5. 请求转发、请求重定向与页面跳转问题

    请求转发 请求转发是服务器行为,即用户向服务器发送了一次http请求,该请求可能会经过多个信息资源处理以后返回给用户,各个信息资源使用请求转发机制互相转发请求,从用户的感官上来看,是感觉不到请求转发的 ...

  6. ajax请求成功后打开新开窗口(window.open())被拦截的解决方法

    问题:今天在做项目时需要在ajax请求成功后打开一个新的窗口,此时遇到浏览拦截了新窗口的问题,尝试在ajax 回调函数中模拟执行 click 或者 submit 等用户行为(trigger('clic ...

  7. java中注解动态传参_SpringMVC之注解、传参、返回值及拦截器

    1. 注解式开发之annotation-driven解释 (1) mvc注解驱动在哪个文件中配置? Springmvc.xml (2) 配置mvc注解驱动使用哪个标签? 2. 注解式开发之视图解析器 ...

  8. html 自动跳转手机版,HTML实现页面自动跳转的五种方法

    在上篇文章给大家介绍了HTML页面3秒后自动跳转的三种常见方法,本文继续给大家介绍有关html页面跳转相关知识,一起学习吧. 下面列了五个例子来详细说明,这几个例子的主要功能是:在5秒后,自动跳转到同 ...

  9. ajax 执行成功 modal 关闭_Ajax请求中的async:false/true的作用

    前言: 昨天在做倒计时修改的时候,发现多次点击按钮,我明明做了限制,点击多次的时候发现怎么都会请求了两次,然后我写的是请求成功添加文字,结果总是会添加两次文字, 说明ajax请求了两次了,在网上查了下 ...

最新文章

  1. 张量解释——深度学习的数据结构
  2. luogu P6113 【模板】一般图最大匹配(带花树)
  3. java代码内创建mysql索引_Java Mysql数据库创建视图、索引、备份和恢复
  4. R package XML安装
  5. ubuntu 上网总结
  6. MATLAB基础教程(6)——使用matlab求解线性方程组
  7. Elasticsearch 2.3.0 重建索引
  8. 基于Raspbian(树莓派)搭建web安全练习环境(一)
  9. 2014年计算机求职总结--准备篇
  10. Echarts-地图扩展-标准geoJson格式扩展地图-例子
  11. 为了方便手机观看,博文最好36个字一行
  12. ArcGIS教程:空间参考和地理处理
  13. IOUtils工具类简介及应用
  14. data fastboot 擦除_安卓刷机 - Fastboot命令
  15. Java零基础学习-每日单词(日更)
  16. linux服务器系统时间和bios时间,Linux系统时间, 硬件BIOS时间的校准与同步
  17. 4g数据需要排序计算机内存,20 亿个数字在 4G 内存中如何去重排序:快来试一试 BitMap...
  18. 2017多校第4场 HDU 6078 Wavel Sequence DP
  19. python检测微信好友被删被拉黑_如何用Python,查看是否被微信好友删除
  20. 全新安装Windows10系统(PE下)

热门文章

  1. 微信小程序(自定义组件)
  2. 阿里面试官没想到一个HashMap,我能跟他扯半小时
  3. python双色球模拟投注及开奖,可复式投注
  4. Shopee夏季什么产品好卖?东南亚5大市场长夏选品攻略
  5. LAS100定位基站
  6. linux pppd GRPS 配置若干问题
  7. 使用GitHub与Eclipse实现小组间合作开发——组员篇
  8. JavaScript如何提取字符串中的数字
  9. Unity Android 路径下的斜杆和反斜杠
  10. 蛋花花分析人工智能靠什么走向大众