ajax请求不能重定向问题探究及解决【借鉴、参考】

【声明】本文章是为了解决个人项目中遇到的ajax请求与重定向的问题,参考了多位网友的博客和意见,感谢这些网友!

1.原因探究及解决方法(参考网友,只做以后查询用)

response.sendRedirect做转向的原理,它其实是向浏览器发送一个特殊的Header,然后由浏览器来做转向,转到指定的页面,所以用sendRedirect时,浏览器的地址栏上可以看到地址的变化。

而ajax请求是局部刷新,默认是不支持重定向或转发,因此需要对请求进行判断:

权限拦截器代码示例:

页面要设置全局js,重写ajax的complete方法

最后在需要做权限判定展示结果的方法ajax请求前加上rightAjax

时间: 2024-08-26 08:59:05

ajax请求不能重定向问题探究及解决【借鉴、参考】的相关文章

解决spring-security session超时 Ajax 请求没有重定向的问题

开始时, 代码是这样的: $.ajax({ type : "POST", url : sSource, cache : false, dataType : "json", data : aoData, success : function(resp) { alert(11) fnCallback(resp); $.dialog.tips('数据加载完毕', 1, 'success.gif', function() { }); } }); spring-securit

使用ajax请求SpringMVC返回Json出现乱码解决方法

1:在使用ajax请求后台访问数据的数据,后台返回的数据是乱码,带??问号的乱码,之前还一直没有遇到过,在这里记录整理一下,贴出解决代码! (1):前台使用ajax ,已经设定返回的结果为json格式!ajax代码不贴出来了! (2):后台代码 @RequestMapping(value = { "/hello/{uuid}" }, method = RequestMethod.GET /*,produces = "text/html;charset=UTF-8"*

ajax请求状态码为0的解决办法

原文链接:https://blog.csdn.net/changqing5818/article/details/53932463 前言 今天遇到个奇怪的问题,使用JQuery的ajax请求,后台的Controller层也接收到请求了,一切处理很正常,但是很奇怪,浏览器Debug发现,responseText是"error",状态码是0而不是200. 请求源码如下 $.ajax({ type: "POST", url: targetUrl, cache: false

在ie中关于ajax请求获得数据缓存问题的解决办法

ie浏览器总会出现一些很奇特的问题,比如,在默认的情况下,一般发送ajaxget请求,IE浏览器第一次会向服务器端请求,获取最新数据,如果地址和参数不编号,第二次及以后再发送请求,它就默认获取的缓存数据,这样的问题是ie中很常见的问题,一般POST则 认为是一个 变动性 访问 (浏览器 认为 POST的提交 必定是 有改变的),总结几个解决的办法: 1.在ajax发送请求前加上 anyAjaxObj.setRequestHeader("If-Modified-Since","

ajax请求常见状态码以及产生的原因

通常前后端使用ajax交互时,客户端向服务器发送请求时,然后服务器向我们返回状态码.状态码就是告诉我们服务器响应的状态,由3位数字组成,其中第一位数字表示响应类别,响应类别从1到5分为五种 . 状态码 响应类别 原因 1xx 信息性状态码(Informational) 服务器正在处理请求 2xx 成功状态码(Success) 请求已正常处理完毕 3xx 重定向状态码(Redirection) 需要进行额外操作以完成请求 4xx 客户端错误状态码(Client Error) 客户端原因导致服务器无

ajax请求后台,response.sendRedirect失效,无法重定向

今天在写项目的时候,想加一个切换用户,需要清除session并且跳转到登录页面,发起一个ajax请求后,执行完发现无法跳转. 原因在于: (从网上摘录) Ajax只是利用脚本访问对应url获取数据而已,不能做除了获取返回数据以外的其它动作了.所以浏览器端是不会发起重定向的. 1)正常的http url请求,只有浏览器和服务器两个参与者.浏览器端发起一个http请求,服务器端处理后发起一个重定向,浏览器端从response中获取到重定向地址,发起另一个http url请求.也就是说,浏览器会按照r

springMVC 解决ajax请求的406错误

直入主题-- 页面表单异步提交:$.post('<%=request.getContextPath()%>/web/register.html', $(form).serialize(), function(data){...}); java后台springMVC的controller接受请求: @RequestMapping("register") @ResponseBody public Map<String, String> register(HttpSe

解决浏览器跨域限制发送ajax请求

一.什么是浏览器跨域限制?本质是什么? 所谓浏览器跨域限制,其实是为了数据安全的考虑由Netscape提出来限制浏览器跨域访问数据的策略,这是一中约定,正式叫法为浏览器同源策略,目前已经在大多数浏览器中支持. 本质上,所谓浏览器同源策略即:不允许浏览器访问跨域的Cookie,ajax请求跨域接口等.也就是说,凡是访问与自己不在相同域的数据或接口时,浏览器都是不允许的. 最常见的例子:对于前后端完全分离的Web项目,前端页面通过rest接口访问数据时,会出现如下问题: 不允许发送POST请求:在发

解决ajax请求cors跨域问题

”已阻止跨源请求:同源策略禁止读取位于 ***** 的远程资源.(原因:CORS 头缺少 'Access-Control-Allow-Origin').“ ”已阻止跨源请求:同源策略禁止读取位于 ******的远程资源.(原因:CORS 请求失败).“ 在项目中或者练习中经常遇到ajax请求跨域的问题,除了可以用jsonp的请求模式,并且在后台支持回调的方式以外,还可以通过简单的配置webconfig文件或者IIS,解决该问题. 一.通过修改配置文件解决CORS跨域问题 在配置文件中的webse