前端之家收集整理的这篇文章主要介绍了
AJAX 封装,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
$(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.syncAjax=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.jsonAjax=function(url,successfn) {
data = (data==null || data=="" || typeof(data)=="undefined")? {"date": new Date().getTime()} : data;
$.ajax({
type: "post",dataType: "json",success: function(d){
successfn(d);
}
});
};
/**
* ajax封装
* url 发送请求的地址
* data 发送到服务器的数据,数组存储,如:{"date": new Date().getTime(),"state": 1}
* dataType 预期服务器返回的数据类型,常用的如:xml、html、json、text
* successfn 成功回调函数
* errorfn 失败回调函数
*/
jQuery.jsonAjax2=function(url,errorfn) {
data = (data==null || data=="" || typeof(data)=="undefined")? {"date": new Date().getTime()} : data;
$.ajax({
type: "post",error: function(e){
errorfn(e);
}
});
};
});
// 自己用
function MyPost(url,postdata,onstart,onend,onsucc,onfail,sync,timeout) {
onstart && onstart();//加载中
if (!timeout) {
timeout = 10000;
}
$.ajax({
url: url,type: 'POST',data: postdata,async: !sync,//sync表示是否采用同步请求
timeout: timeout,success: function (data) {
onend && onend();//加载完成
try {
var d;
if (typeof data == 'string') {
d = $.parseJSON(data);
} else {
d = data;
}
if (d['return_code'] + '' == '0') {
if (typeof d['data'] == 'string') {
if (d['data'] != '')
d['data'] = $.parseJSON(d['data']);
else
d['data'] = {};
}
onsucc && onsucc(d['data'],d['return_message']);
} else {
onfail && onfail(d['data'],d['return_message'],d['return_code']);
}
}
catch (e) {
console && console.log(e);
onfail && onfail();
}
},error: function (msg,status) {
onend && onend();
onfail && onfail();
}
});
}
原文链接:/ajax/161620.html