/** * @author Scott Chen * @version 1.0 * 2017-09-23 08:55 */ var svr_url = 'http://127.0.0.1:8090/ccnet'; (function (window, $, undefined) { //--------------------------------- ajax 定义开始 ---------------------------------// /** * ajax * @constructor */ var Ajax = function (options) { return new Ajax.fn.init(options); }; Ajax.fn = Ajax.prototype = { defaults: { //是否返回全部消息(ajax不处理code,msg) returnAll: true, //处理服务端返回的data数据集合名称 dataParamName: 'list', async: true, type: 'post', //contentType: 'application/x-www-form-urlencoded; charset=UTF-8', contentType: 'application/json; charset=utf-8', data: null, url: '', dataType: 'json' }, constructor: Ajax, init: function(options) { options = options || {}; this.options = $.extend({}, this.defaults, options); return this; }, _ajax:function (param, callback, target, err_callback) { this.init(param); var options = this.options; var obj = {}; obj.async = options.async; obj.type = options.type; obj.contentType = options.contentType; obj.data = options.data; obj.url = options.url; obj.dataType = options.dataType; if (options.jsonp && options.jsonp != "") { obj.jsonp = options.jsonp; } if (options.jsonpCallback && options.jsonpCallback != "") { obj.jsonpCallback = options.jsonpCallback; } obj.success = function (data, textStatus, jqXHR) { if (!data) { alert("服务端没有请求消息返回"); return false; } if (!data.code) { alert("服务端返回result.code为空"); return false; } //不作code过滤处理 if(options.returnAll) { if (callback && typeof callback === 'function') { callback(data); return; }else{ return data; } } //过虑处理code if (data.code == '0') { if(!data.data || (data.data && $.isEmptyObject(data.data))) { if (callback && typeof callback === 'function') { callback(); }else{ alert('【' + data.code + "】" + data.msg); } return; } if (data.data && typeof data.data === 'object') { var json = data.data; //请求返回 if (callback && typeof callback === 'function') { if (target && typeof target === 'object') { callback(json, target); } else { callback(json); } return; } else { return json; } } else { alert("服务端返数据格式不能解析"); return false; } } else { //code != '0' if(!data.data || (data.data && $.isEmptyObject(data.data))) { if (err_callback && typeof err_callback === 'function') { err_callback(); }else{ alert('【' + data.code + "】" + data.msg); } return; } if (data.data && typeof data.data === 'object') { var json = data.data; //请求返回 if (err_callback && typeof err_callback === 'function') { err_callback(json); } else { alert('【' + data.code + "】" + data.msg); } return; } else { if (err_callback && typeof err_callback === 'function') { err_callback(); } else { alert('【' + data.code + "】" + data.msg); } return; } } }; obj.error = function (XMLHttpRequest, textStatus, errorThrown) { if (err_callback && typeof err_callback === 'function') { err_callback(); return; } else { // 通常 textStatus 和 errorThrown 之中 // 只有一个会包含信息 // 调用本次AJAX请求时传递的options参数 this; if(textStatus && textStatus.error) { alert(textStatus.error); return; } } }; $.ajax(obj); } }; Ajax.fn.init.prototype = Ajax.fn; var expose = function() { return { iAjax: function (param, callback, target, err_callback) { return Ajax.fn._ajax(param, callback, target, err_callback); } } }(); window.top.Req = window.Req = expose; //--------------------------------- ajax 定义结束 ---------------------------------// })(window, jQuery);