现在我们可以借助webMethod方法来使ajax实现起来更加简练
1,既然要用WebMethod,那肯定就少不了引用一下命名空间了
using System.Web.Services;
在这里,为方便开发,我新建了一个页面专门用于写WebMethod方法.那样会比较方便,也比较好管理. 如果ajax请求比较多,可以多建几个页面.根据页面的名称来作下请求的分类
例,下面贴出后台代码:
////// 根据任务ID获取任务名称,任务完成状态,任务数量/// /// $.ajaxWebService = function(url, dataMap, fnSuccess) {$.ajax({type: "POST",contentType: "application/json",url: url,data: dataMap,dataType: "json",success: fnSuccess});}
好了,这样我们请求webmethod方法 就可以这样调用了:
$.ajaxWebService("WebMethodAjax.aspx/GetMissionInfoById", "{id:12}", function(result) {//......});
下面再贴一种封装,是以前跟一经理时,看的他的封装.觉得还不错
首先也是建一个js文件,文件名随你们起了.我这里就建了一个CommonAjax.js里面两个方法,看下面代码:
function json2str(o) {var arr = [];var fmt = function(s) {if (typeof s == 'object' && s != null) return json2str(s);return /^(string|number)$/.test(typeof s) ? "'" + s + "'" : s;}for (var i in o) arr.push("'" + i + "':" + fmt(o[i]));return '{' + arr.join(',') + '}';}function Invoke(url, param) {var result;$.ajax({type: "POST",url: url,async: false,data: json2str(param),contentType: "application/json; charset=utf-8",dataType: "json",success: function(msg) {result = msg.d;},error: function(r, s, e) {throw new Error();}});return result;}
我们在前台的调用就比较简单了.
var result = Invoke("WebMethodAjax.aspx/GetMissionInfoById", { "name": arguments.Value, "id": id });
不过如果用这么方式的话.在给后台WebMethod方法传参时要注意一点.Json的key必须跟WebMethod方法的形参一样,还有参数的顺序不可乱.否则会请求失败.
例如后台的方法如下:
[WebMethod]public static string GetMissionInfoById(int Id,string name){ //..... return "false";}
我们要传两个参数,格式就按:
[csharp] view plain copy print?{"Id":23,"name":"study"}
以上所述是小编给大家介绍的使用Jquery Ajax 请求webservice来实现更简练的Ajax,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对PHP中文网的支持!
更多使用jQuery Ajax 请求webservice来实现更简练的Ajax相关文章请关注PHP中文网!