使用jQuery Ajax 请求webservice来实现更简练的Ajax
在以往我们在做ajax时,都要借助于一般处理程序(.ashx)或web服务(.asmx),并且每一个请求都要建一个这样的文件.这样建一大堆ashx文件,比较麻烦,多了看起来也不爽. 现在我们可以借助webMethod方法来使ajax实现起来更加简练 1,既然要用WebMethod,那肯定就少不了引用一下命名空间了using System.Web.Services; 在这里,为方便开发,我新建了一个页面专门用于写WebMethod方法.那样会比较方便,也比较好管理. 如果ajax请求比较多,可以多建几个页面.根据页面的名称来作下请求的分类 例,下面贴出后台代码:
/// 根据任务ID获取任务名称,任务完成状态,任务数量
///
///
///
后台的这个WebMethod方法要求是公共的静态方法,方法上面注意要加上WeMethod属性;如果要在这个方法里面操作Session.就得在方法上加上属性 2.既然后台的WebMethod方法都已经写好了.就差着调用了.这里就用JQuery吧.比较简练这里对Jquery的Ajax几个参数做一下简单的说明,type:请求的类型,这里必须用post 。WebMethod方法只接受post类型的请求 contentType:发送信息至服务器时内容编码类型。我们这里一定要用application/json url:请求的服务器端处理程序的路径,格式为"文件名(含后缀)/方法名" data:参数列表。注意,这里的参数一定要是json格式的字符串,记住是字符串格式,如:"{aa:11,bb:22,cc:33,...}"。 如果你写的不是字符串,那jquery会把它实序列化成字符串,那么在服务器端接受到的就不是json格式了,且不能为空,即使没有参数也要写成"{}",如上例。很多人不成功,原因就在这里。 dataType:服务器返回的数据类型。必须是json,其他的都无效。因为webservice 是一json格式返回数据的,其形式为:{"d":"......."}。 success:请求成功后的回调函数。你可以在这里对返回的数据做任意处理。 我们可以看到其中一些参数值是固定的,所以从复用性的角度考虑,我们可以给jquery做一个扩展,对上面的函数做一下简单的封装:我们建一个脚本文件叫jquery.extend.js。在里面写一个叫ajaxWebService的方法(因为webmethod其实就是WebService嘛,故此方法对请求*.asmx也是有效的),代码如下:
///jQuery原型扩展,重新封装Ajax请求WebServeice
///
///
///
///
$.ajaxWebService = function(url,dataMap,fnSuccess) {
$.ajax({
type: "POST",url: url,data: dataMap,success: fnSuccess
});
}
好了,这样我们请求webmethod方法 就可以这样调用了: 下面再贴一种封装,是以前跟一经理时,看的他的封装.觉得还不错 首先也是建一个js文件,文件名随你们起了.我这里就建了一个CommonAjax.js里面两个方法,看下面代码: 我们在前台的调用就比较简单了. 不过如果用这么方式的话.在给后台WebMethod方法传参时要注意一点.Json的key必须跟WebMethod方法的形参一样,还有参数的顺序不可乱.否则会请求失败. 例如后台的方法如下: 我们要传两个参数,格式就按: 以上所述是小编给大家介绍的使用Jquery Ajax 请求webservice来实现更简练的Ajax。编程之家 52php.cn 收集整理的教程希望能对你有所帮助,如果觉得编程之家不错,可分享给好友!感谢支持。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |