ajax extend,Jquery Ajax二次封装(部分转载)

这篇博客介绍了如何使用jQuery进行AJAX的封装,包括get和post方法的扩展,以及添加了loading加载效果。示例中展示了不同方式的AJAX调用,如$.ajax、$.getJSON和自定义的$.ax、$.axs、$.axse方法,并提供了模拟调用的例子。
摘要由CSDN通过智能技术生成

/*

ajax调用扩展

*/

$.extend($,{

ajaxGetJson:function(url,data,callback)

{

$.ajax({

url:url,

data:data,

datatype:"json",

method:"get",

contentType: "application/json",

beforeSend:function(){

//myLoad();//打开加载层

},

complete:function(data){

//closeLoad();//关闭加载层

},

success: function(msg) {

if (typeof callback != 'undefined')

callback.call(this, msg);

}

});

},

ajaxPostJson:function(url,data,callback)

{

$.ajax({

url:url,

data:data,

datatype:"json",

method:"post",

contentType: "application/json",

beforeSend:function(){

//myLoad();//打开加载层

},

complete:function(data){

//closeLoad();//关闭加载层

},

success: function(msg) {

if (typeof callback != 'undefined')

callback.call(this, msg);

}

});

}

});

参考示例:

function AjaxMethod() {

//this.init.apply(this, arguments);

}

AjaxMethod.prototype = {

init: function() {

debugger;

},

GetJson: function() {

jQuery.getJSON(

"Json.ashx",

{ name: 'test', age: 32 },

function(data) {

debugger;

var txt = eval(data);

//var obj = data.toJSONString(); //由JSON字符串转换为JSON对象

var objs = JSON.stringify(data); //由JSON字符串转换为JSON对象

alert(txt);

})

},

GetAjax: function() {

jQuery.ajax({

url: "Json.ashx",

type: "get",

dataType: "json",

contextType: "application/json; charset=utf-8",

data: { name: 'test', age: 32 },

success: function(data) {

debugger;

jQuery.each(data, function(i) {

});

},

error: function() {

//请求出错处理

alert(1);

}

})

},

PostAjax: function() {

jQuery.post(

"Json.ashx",

{

name: userName,

age: 12

// ajaxMethod: "Login"

},

function(data) {

var d = data;

},

"json"

);

}

}

var method=new AjaxMethod();

封装 jquery ajax,加入loading加载

$.extend($, {

/*

*ajax调用封装,返回json

* url 服务路径

* data一般为js对象

* callback 回调函数

*/

MyAjax: function(url, data, callback) {

$.ajax({

url: url,

data: data,

dataType:'json',

method: "post",

beforeSend:function(){

myLoad();//打开加载层

},

complete:function(data){

closeLoad();//关闭加载层

},

success: function(msg) {

if (typeof callback != 'undefined')

callback.call(this, msg);

}

});

}

});

使用:

$.MyAjax("/test","data=1",callBack);

function callBack(json){

alert(json.msg);

}

jQuery Ajax通用js封装

/*****************************************************************

jQuery Ajax封装通用类  (linjq)

*****************************************************************/

$(function(){

/**

* ajax封装

* url 发送请求的地址

* data 发送到服务器的数据,数组存储,如:{"date": new Date().getTime(), "state": 1}

* async 默认值: true。默认设置下,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为 false。

*       注意,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。

* type 请求方式("POST" 或 "GET"), 默认为 "GET"

* dataType 预期服务器返回的数据类型,常用的如:xml、html、json、text

* successfn 成功回调函数

* errorfn 失败回调函数

*/

jQuery.ax=function(url, data, async, type, dataType, successfn, errorfn) {

async = (async==null || async=="" || typeof(async)=="undefined")? "true" : async;

type = (type==null || type=="" || typeof(type)=="undefined")? "post" : type;

dataType = (dataType==null || dataType=="" || typeof(dataType)=="undefined")? "json" : dataType;

data = (data==null || data=="" || typeof(data)=="undefined")? {"date": new Date().getTime()} : data;

$.ajax({

type: type,

async: async,

data: data,

url: url,

dataType: dataType,

success: function(d){

successfn(d);

},

error: function(e){

errorfn(e);

}

});

};

/**

* ajax封装

* url 发送请求的地址

* data 发送到服务器的数据,数组存储,如:{"date": new Date().getTime(), "state": 1}

* successfn 成功回调函数

*/

jQuery.axs=function(url, data, successfn) {

data = (data==null || data=="" || typeof(data)=="undefined")? {"date": new Date().getTime()} : data;

$.ajax({

type: "post",

data: data,

url: url,

dataType: "json",

success: function(d){

successfn(d);

}

});

};

/**

* ajax封装

* url 发送请求的地址

* data 发送到服务器的数据,数组存储,如:{"date": new Date().getTime(), "state": 1}

* dataType 预期服务器返回的数据类型,常用的如:xml、html、json、text

* successfn 成功回调函数

* errorfn 失败回调函数

*/

jQuery.axse=function(url, data, successfn, errorfn) {

data = (data==null || data=="" || typeof(data)=="undefined")? {"date": new Date().getTime()} : data;

$.ajax({

type: "post",

data: data,

url: url,

dataType: "json",

success: function(d){

successfn(d);

},

error: function(e){

errorfn(e);

}

});

};

});

模拟调用

String path = request.getContextPath();

String basePath = request.getScheme() + "://"

+ request.getServerName() + ":" + request.getServerPort()

+ path + "/";

%>

jQuery Ajax封装通用类测试

$(function(){

$.ax(

getRootPath()+"/test/ajax.html",

null,

null,

null,

null,

function(data){

alert(data.code);

},

function(){

alert("出错了");

}

);

$.axs(getRootPath()+"/test/ajax.html", null, function(data){

alert(data.data);

});

$.axse(getRootPath()+"/test/ajax.html",

null,

function(){

alert("成功了");

},

function(){

alert("出错了");

});

});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值