/**--jquery ajax请求处理插件类--**/
var WebsiteAjax = {
returnData : null,
//获取一个实例
getInstance : function(settings){
/**
* 默认的200回调函数(可重写和继承)
*/
var defaultAjaxSuccessMethod = function(data,status) {
alert(data.message);
return false;
};
var defaultAjaxCallbakErrorMethod = function(data,status) {
alert(data.message);
return false;
};
/**
* 默认的错误回调函数 (可重写和继承) 大部分错误处理都可以直接用它
* 406 为自定义错误 状态码 通常会携带个自定义的描述字符串msg
* 比方说,异步请求后台判断了某个参数为空,若为空则返回
* 那么就可以将状态吗标注为406,然后弄个msg的key,value
*/
var defaultAjaxErrorMethod = function(XMLHttpRequest, textStatus, errorThrown) {
try{
var e = jQuery.parseJSON(XMLHttpRequest.responseText);
alert("提示:["+e.message+"]");
}catch(e){
alert("提示:[服务器出错]");
}
return false;
};
/**
* 定义默认变量,常量
* ajaxUrl 请求的action路径,pagerUrl是分页控件本身要访问的url,可以与ajaxUrl相同
* dataParameter 需要传递的参数,这里是个默认的
*/
var defaultAjaxVariable = {
ajaxUrl : "url",
dataParameter : null,
type : "POST",
dataType : "text",
async: false,
succesMethod : defaultAjaxSuccessMethod, //默认200回调方法名称
errorCallMethod : defaultAjaxCallbakErrorMethod, //默认非200jsonp回调方法名称
errorMethod : defaultAjaxErrorMethod //默认非200回调方法名称
};
/**
* 执行异步post ajax请求方法
* newsVariable 新的变量或常量
* successMethod 回调函数 返回200时 处理业务的方法名称
* errorMethod 错误回调函数 处理业务的方法名称
*/
var ajaxMethod = function(newsVariable){
defaultAjaxVariable = jQuery.extend(true,defaultAjaxVariable, newsVariable);
if(defaultAjaxVariable.dataType == "jsonp" || defaultAjaxVariable.dataType == "JSONP"){
if(defaultAjaxVariable.dataParameter != null && defaultAjaxVariable.dataParameter != ""){
if(typeof(defaultAjaxVariable.dataParameter) == "object"){
var temp = "t=" + Math.random();
for(var x in defaultAjaxVariable.dataParameter){
temp += "&" + x + "=" + defaultAjaxVariable.dataParameter[x];
}
defaultAjaxVariable.dataParameter = temp;
}else {
defaultAjaxVariable.dataParameter += "&t=" + Math.random();
}
}else {
defaultAjaxVariable.dataParameter = "t=" + Math.random();
}
}
$.ajax({
url: defaultAjaxVariable.ajaxUrl,
type: defaultAjaxVariable.type,
async: defaultAjaxVariable.async,
data: defaultAjaxVariable.dataParameter,
dataType: defaultAjaxVariable.dataType,
success: function (data, textStatus) {
if(defaultAjaxVariable.dataType == "jsonp" || defaultAjaxVariable.dataType == "JSONP"){
var res = null;
if(typeof(data) == "object"){
res = data;
}else {
res = jQuery.parseJSON(data);
}
if(res.status == "success"){
defaultAjaxVariable.succesMethod(res,textStatus);
}else {
defaultAjaxVariable.errorCallMethod(res, textStatus);
}
}else {
defaultAjaxVariable.succesMethod(data,textStatus);
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
defaultAjaxVariable.errorMethod(XMLHttpRequest, textStatus, errorThrown);
}
});
};
/** 加载时执行 **/
ajaxMethod(settings);
}
};
website.ajax.js