response.sendRedirect页面跳转无效,原因是在于ajax请求后台

编程入门 行业动态 更新时间:2024-10-25 10:34:32

response.sendRedirect页面<a href=https://www.elefans.com/category/jswz/34/1769274.html style=跳转无效,原因是在于ajax请求后台"/>

response.sendRedirect页面跳转无效,原因是在于ajax请求后台

项目想要在后台进行页面跳转,用了response.sendRedirect,但是没反应,debug了一下,发现执行到重定向的时候没反应,当时就是一脸懵逼的,怎么重定向没有进行要页面跳转呢?到网上搜了下原因,

原因在于: 
(从网上摘录) 
Ajax只是利用脚本访问对应url获取数据而已,不能做除了获取返回数据以外的其它动作了。所以浏览器端是不会发起重定向的。 
1)正常的http url请求,只有浏览器和服务器两个参与者。浏览器端发起一个http请求,服务器端处理后发起一个重定向,浏览器端从response中获取到重定向地址,发起另一个http url请求。也就是说,浏览器会按照response中的内容进行响应(如重定向),这是浏览器的功能决定的就得响应。 
2)Ajax请求,参与者就有三个即ajax、客户端、服务器,ajax处于客户端和服务器两者之间。过程是客户端发起一个ajax请求,服务器端处理后,如果发起一个重定向,然后ajax会怎么办呢?它只会获取刚才请求返回的数据,其他的任何动作一概不去做,ajax是这么做的(ajax功能就是这么设定的,ajax框架源代码也是这么写的)。 
也就是说,引入了ajax之后,ajax就插在浏览器和服务器之间了,服务器给浏览器的response被ajax拦截了,但是ajax本身却什么都不做,也不转达。

 

上面说的很清楚了博主也就不扯犊子了,我就直接说我的解决方法吧,

既然在后台不能使用重定向进行页面跳转,那就直接把你要跳转的链接通过ajax回传到前台,然后直接通过前台进行页面跳转就行了,

当然,这样的也有不好的地方,就是请求时间有点长。

这边我原本就是这样写的,为什么我当时想着要在后台进行重定向跳转页面呢?

是因为我在前台跳转链接的时候,请求了太多次后台接口,当时想着能不能再后台进行重定向跳转,能减少请求后台接口的次数,然后访问效率会快些,结果绕了一圈,还是又回来了,

欲哭无泪啊~~~

 

更多推荐

response.sendRedirect页面跳转无效,原因是在于ajax请求后台

本文发布于:2024-03-05 01:13:28,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1710921.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:跳转   后台   原因   页面   response

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!