介绍ASP.NET AJAX
一般来说,有成功就有失败,异步调用也是一样,会出现请求异常的情况。在传统的Ajax中,不论请求成功还是失败,回调函数都会被调用,然后我们可以判断 XMLHttpRequest对象的状态确定请求是否成功,如果失败了,可以进行异常处理。
但是,在ASP.NET AJAX应用中,只有成功时回调函数才会被调用,那么失败时怎么办?其实,ASP.NET AJAX允许我们在调用后台方法时指定两个回调函数,语法如下:
类名.方法名(参数1,参数2,……,参数n,请求成功时的回调函数,请求失败时的回调函数)
只不过在前面的应用中,我们省略了第二个回调函数。为了理解这个地方,我们做一个小实验,打开上一篇中的ASPNETAJAXTest这个程序,将ajax.js这个文件里的内容做如下修改:
ajax.js:
//单击btnSayHello时调用的JS函数 function btnSayHello_onClick() { SayHelloService.SayHello(OnSucceeded,OnFailded); } //成功时的回调函数 function OnSucceeded(reusltText) { $get("result").innerHTML=reusltText; } //失败时的回掉函数 function OnFailded(error) { $get("result").innerHTML="调用失败。错误信息:"+error.get_message(); }
其中异常时的回调函数有一个参数error,它是一个ASP.NET AJAX框架定义的一个对象,包含了异常信息。其中get_message()方法将返回异常信息字符串。
为了看效果,我们还要到WebService里搞一点破坏,让请求出现异常,“破坏”后的WebService如下:
SayHelloService.cs: using System; using System.Web;using System.Collections; using System.Web.Services; using System.Web.Services.Protocols;using System.Web.Script.Services; [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [ScriptService]public class SayHelloService System.Web.Services.WebService{public SayHelloService() { } [WebMethod]public string SayHello(){ //Hello myHello = new Hello(); //return myHello.SayHello(); throw new Exception("我来搞破坏!"); } }
这里我们手工抛出了一个异常。下面运行程序,会得到如下结果:
相关推荐
ChinaGuanq 2020-06-08
坚持着执着 2020-07-16
kentrl 2020-11-10
结束数据方法的参数,该如何定义?-- 集合为自定义实体类中的结合属性,有几个实体类,改变下标就行了。<input id="add" type="button" value="新增visitor&quo
ajaxyan 2020-11-09
zndy0 2020-11-03
学留痕 2020-09-20
Richardxx 2020-11-09
learningever 2020-09-19
chongxiaocheng 2020-08-16
ajaxhe 2020-08-16
lyqdanang 2020-08-16
curiousL 2020-08-03
TONIYH 2020-07-22
时光如瑾雨微凉 2020-07-19
83510998 2020-07-18
jiaguoquan00 2020-07-07
李永毅 2020-07-05