如何正确处理ajax 302跳转问题回博客首页
作者:麦鸡 来源:麦鸡(Macji) 时间:2009-02-28 14:01:00
如果我们的web应用有大量的异步请求,而这些异步请求是在web服务器认证的情况下,那当我们请求发生在服务器认证失效下,服务器自动302到登录页面,那我们异步获取的是登录页面的数据。我们看YUI代码,当ajax请求发生301 302属于失败事件。
...
if(httpStatus >= 200 && httpStatus < 300 || httpStatus === 1223){
//
}
...
但事实上,并没有发生失败事件,浏览器会再发一次ajax请求到302的地址,如果还是发生302,一直请求,直到完成请求或者请求跨域失败为止。对于js来说,301 302这种跳转是透明的,无法处理。
测试地址(请用firebug, 打开控制台,查看数据,一目了然)
那到底如何当ajax正确处理302呢,这是浏览器级别的问题,也就是说没有浏览器能正确处理302。对于我们前端来说,正确的验证ajax回来的数据,并给出提示,那也不友好(比如服务器端希望我们去登录页面)。更友好的处理是当服务器端发生302,那ajax就当”错误”处理,也做302跳转。
//success的时候 不是你想要的数据后,做如下验证
if(-1 != data.indexOf('x')){//x为302后页面特定的字符
var LOGIN_DOMAIN = 'xxx';//302地址
window.location = LOGIN_DOMAIN;
return true;
}
//当302跳转后,ajax发生跨域,可以在failure处理,但 ie返回的是o.status 是 0
failure: function(o){
if(302 == o.status){
//
}
}
标签:302,301,跳转,ajax,博客
0
投稿
猜你喜欢
小议sqlserver数据库主键选取策略
2011-10-24 19:51:30
一些实用性较高的js方法
2024-04-29 13:37:40
解决jupyter运行pyqt代码内核重启的问题
2022-01-29 21:28:40
python字符类型的一些方法小结
2023-06-27 00:00:20
Pytorch中的Tensorboard与Transforms搭配使用
2023-07-09 08:27:05
Python使用scrapy采集数据时为每个请求随机分配user-agent的方法
2023-02-08 15:20:31
margin双倍边距问题:ie和firefox显示
2008-09-07 15:05:00
python 列表推导和生成器表达式的使用
2021-03-16 11:21:39
python中把嵌套的列表合并成一个列表方法总结
2022-06-07 04:11:22
python学习笔记:字典的使用示例详解
2022-06-14 16:31:31
asp xmlhttp下载一句话
2013-06-30 06:47:48
uniapp使用百度地图的保姆式教学(适合初学者!)
2024-04-29 14:06:21
Python中的with...as用法介绍
2023-03-30 11:17:19
Javascript世界的最大整数值
2008-06-23 13:23:00
MyBatis 如何写配置文件和简单使用
2024-01-26 08:01:18
在Linux上安装Python的Flask框架和创建第一个app实例的教程
2021-08-26 14:23:11
Python3中在Anaconda环境下安装basemap包
2021-11-30 20:05:57
Python requests模块cookie实例解析
2023-11-18 15:44:56
Python脚本调试工具安装过程
2021-08-02 23:10:53
Oracle 自增(auto increment) 或 标识字段的建立方法
2009-03-06 11:15:00