论坛首页 入门技术论坛

创建xhr对象出现异常处理---Ajax之六

浏览 2689 次
该帖已经被评为新手帖
作者 正文
   发表时间:2010-08-16   最后修改:2010-08-18

前面几篇一直采用最精简的方式创建Ajax的核心XMLHttpRequest对象

var xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP');

 

没有考虑其可能出现的异常,即创建失败。其实个人认为以上创建方式创建失败的几率非常之少,起码在IE6/7/8/Firefox/Safari/Chrome/Opera如此,其它浏览器就不知了。

 

如果作为一个基础库还是完善下,如果出现创建失败,failure的第二个参数msg将会被赋值为"create xhr failed"。

如下:

 

var xhr = function(){
	try{
		return new XMLHttpRequest();
	}catch(e){
		try{
			return new ActiveXObject('Msxml2.XMLHTTP');
		}catch(e){
			try{
				return new ActiveXObject('Microsoft.XMLHTTP');
			}catch(e){
				failure(null,'create xhr failed',e);
			}
		}
	}
}();

 

 

源码见附件

 

 

 

   发表时间:2010-08-21  
这算是造车轮?你的基础库会这么实现吗?斟酌噻!
1 请登录后投票
   发表时间:2010-08-23  
官方API就是这么写的???。。。。。
0 请登录后投票
   发表时间:2010-08-31  
异步请求的时候,后台逻辑抛异常了,Ajax中怎么处理?
建议楼主往这方面去做,可能更实用点。
0 请登录后投票
   发表时间:2010-09-01  
rongxh2010 写道
异步请求的时候,后台逻辑抛异常了,Ajax中怎么处理?
建议楼主往这方面去做,可能更实用点。


后台异常会返回500之类的错误,会进入failure方法中,其参数分别为参数为xmlHttp, msg, exp
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics