ajax接口封装方法
1、参数:@type: “xml”,”html”,”javascript”,”json”数据类型;@url: 请求的响应页面;@sdata:POST的数据;@callback:处理响应数据的回调函数;
2、返回值:如果是异步,返回异步请求对象;否则不返回。
3、回调函数有两个参数:(req, data) @req:异步请求对象(XMLHttpRequest 或 ActiveXObject)@data:传入的附加数据。
4、function ajaxRequest(type, url, data, callback, loading, cache) { var ajaxConfig = { url: '', data: {}, callback: null, loading: true, cache: true, async: true }; // 判断每一个参数url的类型 // 如果是对象则是请求参数对象 // 如果是字符串则是请求URL,参数和回调要继续检测后面的参数 if (typeof url === 'string') { ajaxConfig.url = url; ajaxConfig.data = data; ajaxConfig.callback = callback; ajaxConfig.loading = typeof(loading) === 'undefined' ? true : loading; ajaxConfig.cache = cache; } else { ajaxConfig = $.extend({}, ajaxConfig, url); } $.ajax({ type: type, url: ajaxConfig.url, data: ajaxConfig.data, beforeSend: function() { if (ajaxConfig.loading) { $.showLoading(); } }, dataType: 'json', cache: ajaxConfig.cache, async: ajaxConfig.async, success: function(re) { if (ajaxConfig.loading) { $.hideLoading() }; if (re.result == 1) { if (re.msg != '') { $.toast(re.msg, function() { if (re.redirect) { window.location.href = re.redirect; } else { ajaxConfig.callback(re.data); } }); } else { ajaxConfig.callback(re.data); } } else { $.toast(re.msg, 'forbidden'); } }, error: function(re) { ajaxConfig.loading && $.hideLoading(); $.toast("Error", "forbidden"); console.error(re.responseText); } }) } function ajaxGet(url, data, callback, loading) { ajaxRequest('get', url, data, callback, loading, true); } function ajaxPost(url, data, callback, loading) { ajaxRequest('post', url, data, callback, loading, false); }