`
zhouyrt
  • 浏览: 1172407 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

阅读更多

前面几篇一直采用最精简的方式创建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);
			}
		}
	}
}();

 

 

源码见附件

 

 

 

分享到:
评论
4 楼 zhouyrt 2010-09-01  
rongxh2010 写道
异步请求的时候,后台逻辑抛异常了,Ajax中怎么处理?
建议楼主往这方面去做,可能更实用点。


后台异常会返回500之类的错误,会进入failure方法中,其参数分别为参数为xmlHttp, msg, exp
3 楼 rongxh2010 2010-08-31  
异步请求的时候,后台逻辑抛异常了,Ajax中怎么处理?
建议楼主往这方面去做,可能更实用点。
2 楼 sunquanfeng 2010-08-23  
官方API就是这么写的???。。。。。
1 楼 fengjia10 2010-08-21  
这算是造车轮?你的基础库会这么实现吗?斟酌噻!

相关推荐

    ajax--测试

    使用Ajax的基本步骤包括创建XMLHttpRequest对象、打开连接、发送请求以及处理服务器的响应。下面我们将深入探讨这些步骤和相关的知识点: 1. **创建XMLHttpRequest对象**:在JavaScript中,几乎所有的现代浏览器都...

    AJAX基础教程.pdf

    ### AJAX基础教程知识点总结 #### 一、AJAX概述 - **定义**:Asynchronous JavaScript and XML(异步JavaScript和XML)是...随着技术的发展,虽然出现了更多新的框架和技术,但AJAX的基础仍然是理解这些新技术的基础。

    Ajax基础教程(html版下载)121-190页

    Ajax的核心是通过JavaScript创建XMLHttpRequest对象,这是一个浏览器内置的对象,允许我们与服务器进行通信。当用户触发一个Ajax请求时,JavaScript会创建XMLHttpRequest实例,并通过它发送HTTP请求到服务器。服务器...

    接口ajax练习

    通常,我们会创建一个函数,接收必要的参数如URL、请求类型、数据等,然后在函数内部处理所有与Ajax请求相关的逻辑。这样,每次需要发起Ajax请求时,只需调用这个封装好的函数即可。 **三、实现步骤** 1. **创建...

    ajax 注册页面代码

    7. **错误处理**:在Ajax请求中,应考虑可能出现的错误情况,如网络中断、服务器错误等,通过`onerror`事件处理这些异常。 8. **跨域请求(CORS)**:如果注册页面与服务器不在同一域下,需要开启CORS(跨源资源共享...

    AJAX公共包及使用

    开发者可以使用 XHR 对象创建请求、发送数据、接收响应以及处理返回的数据。在 AJAX 公共包中,这些操作往往被包装成更易用的函数。 ### 2. JSONP 和 CORS 由于同源策略的限制,JavaScript 默认不能跨域请求数据。...

    ajax异步调用webservice实例

    2. 错误处理:添加错误处理逻辑,捕获并处理可能出现的网络异常、语法错误等。 3. 数据格式:根据WebService返回的数据格式(XML、JSON等),选择合适的解析方法。 总结,AJAX异步调用WebService是现代Web应用中...

    第13章 Ajax进阶(下)

    在“第13章 Ajax进阶(下)”中,我们可能深入学习了如何创建和使用XHR对象,包括: 1. 初始化XHR对象:`var xhr = new XMLHttpRequest();` 2. 设置请求方式(GET或POST)和URL:`xhr.open('GET', 'data.txt', true...

    ajax_transportation_methods.ppt

    而Ajax则改变了这一模式,它通过XHR对象在后台与服务器通信,然后动态更新页面内容。这提高了用户体验,因为用户无需等待整个页面重新加载。 ### Ajax框架 为了简化Ajax的开发,出现了许多框架和库,如DWR(Direct ...

    简单Ajax前台后台实例

    2. 错误处理:对于可能出现的异常情况,如网络问题或数据库错误,应有合适的错误处理机制。 3. 异步处理:Servlet可以考虑使用异步处理方式,以提高并发性能。 4. 安全传输:使用HTTPS协议,确保数据在传输过程中的...

    使用ajax取得数据

    **Ajax技术详解** Ajax(Asynchronous JavaScript and XML)是一种在无需刷新整个网页的情况下,能够...在实际项目中,根据需求选择合适的库或API,同时注意处理好跨域、异常和SEO等问题,才能更好地发挥Ajax的优势。

    上传图片springMVC和ajax

    3. **错误处理**: SpringMVC提供了丰富的异常处理机制,可以捕获并处理上传过程中可能出现的问题,如文件大小超出限制、文件类型不匹配等。 4. **返回响应**: 一旦图片成功上传,Controller可以返回一个JSON或XML...

    AJAX无刷新 调用文件实例

    异常处理与兼容性 在实际应用中,应处理可能出现的错误,例如网络中断、服务器错误等。同时,旧版本的IE浏览器需要使用ActiveXObject。为了保证兼容性,可以使用如下的方式创建XMLHttpRequest对象: ```...

    HMLHttpRequest-对象详细讲解.doc

    综上所述,`XMLHttpRequest` 对象是实现 Ajax 技术的关键组件之一。通过它,我们可以轻松地实现与服务器的异步通信,从而构建出更加高效、灵活的 Web 应用。在实际开发过程中,合理运用 `XMLHttpRequest` 的方法和...

    springmvc+ajax上传例子

    4. **错误处理和反馈**:在实际项目中,你需要处理可能出现的错误,如文件大小超出限制、文件类型不被接受等,并通过Ajax回调向用户显示相应的信息。 通过以上步骤,你已经成功地创建了一个基于SpringMVC和Ajax的...

    ajax文件上传

    在现代Web开发中,AJAX(Asynchronous JavaScript and XML)技术被广泛用于创建动态和交互式的用户界面。AJAX文件上传是一种不刷新整个页面就能实现文件上传的技术,它提升了用户体验,因为用户可以在提交数据时保持...

    ajax使用方法

    1. **创建XMLHttpRequest对象**:这是所有Ajax操作的基础,现代浏览器通常内置此对象。 2. **初始化连接**:调用XMLHttpRequest对象的`open()`方法,指定请求类型(GET、POST等)、URL和是否异步。 3. **设置请求头*...

    Ajax验证用户名是否重复.rar

    10. **错误处理**:对于可能出现的网络异常或服务器错误,需要捕获并处理,例如显示错误提示,让用户重新尝试。 通过以上步骤,我们可以实现一个简单的Ajax用户名验证功能。这个功能可以集成到注册、登录等页面,...

    Ajax结合xml的应用源码

    6. **处理响应**:xhr对象有多个事件监听器,如`onreadystatechange`,当服务器返回响应时触发。`readyState`属性表示请求的状态,`status`属性表示HTTP状态码,`responseText`或`responseXML`属性获取响应内容。 7...

    AJAX开发简略

    - 错误处理:应处理网络错误或其他异常情况。 综上,AJAX是Web开发中不可或缺的一部分,熟练掌握AJAX技术能显著提升Web应用的性能和用户体验。在实际开发中,结合HTML5的新特性,如WebSocket,可构建更高效、更实时...

Global site tag (gtag.js) - Google Analytics