文章出處
文章列表
//ajax公共方法,zs 2017-06-14 $.extend({ //比jq的ajax多了的參數: //salert是否在請求成功后彈出后臺的SuressStr字段值 //ealertStr:請求出錯 majax: function (a) { if (typeof a === "object") { var defaultOption = { url: "", async: true, cache: true,//dataType 為 script 和 jsonp 時默認為 false。設置為 false 將不緩存此頁面。 data: null, type: "get", timeout: null, dataType: "",//預期服務器返回的數據類型 contentType: "application/x-www-form-urlencoded",//發送信息至服務器時內容編碼類型。 beforeSend: function (XMLHttpRequest) { // console.log("請求開始"); }, //dataFilter: function (data, type) { // console.log("請求成功success之前"); //dataFilter給Ajax返回的原始數據的進行預處理的函數。它的調用在success之前 //測試1.10.2和2.0.3版本的js如果存在此方法則success不會執行。會直接到error方法里,雖然狀態碼是200 //}, success: function (data, textStatus, jqXHR) { // console.log("請求成功"); }, error: function (XMLHttpRequest, textStatus, errorThrown) { // console.log("請求出錯"); }, complete: function (XMLHttpRequest) { //在error或success之前執行 // console.log("無論成功錯誤我都存在"); }, context: null,//這個對象用于設置 Ajax 相關回調函數的上下文。也就是說,讓回調函數內 this 指向這個對象 global: true,//是否觸發全局 AJAX 事件。默認值: true。設置為 false 將不會觸發全局 AJAX 事件,如 ajaxStart 或 ajaxStop 可用于控制不同的 Ajax 事件。 ifModified: false,//僅在服務器數據改變時獲取新數據。默認值: false。使用 HTTP 包 Last-Modified 頭信息判斷。在 jQuery 1.4 中,它也會檢查服務器指定的 'etag' 來確定數據沒有被修改過。 jsonp: "", jsonpCallback: "", username: null, password: null, processData: true, scriptCharset: "", traditional: false,// 默認的話,traditional為false,即jquery會深度序列化參數對象,不深度序列化的例子:data:{ p: ["123", "456", "789"] },p會序列化成 p=123&p=456&p=456。深度序列化例子:data:{foo:["bar1", "bar2"]} 轉換為 '&foo=bar1&foo=bar2'。 //xhr: function () { //測試會導致返回的status為0 //}, //自加參數 eAlertStr: "",//請求出錯彈出的內容 eAlertStrOrder: false,//eAlertStr彈出的順序,false表示在error方法執行完畢之后彈出 sAlert: false,//請求成功后是否彈出后臺返回的SuccessStr字段的內容,必須確定后臺返回的是能序列化的json sAlertOrder: false,//sAlert彈出的順序,false表示在success方法執行完畢之后彈出 execomplete: function (data, textStatus, jqXHR) { //success或error方法執行完畢,success時該方法的參數才有值 // console.log("方法執行完畢了"); } } for (i in a) { defaultOption[i] = a[i]; } $.ajax({ url: defaultOption.url, async: defaultOption.async, cache: defaultOption.cache, data: defaultOption.data, type: defaultOption.type, timeout: defaultOption.timeout, dataType: defaultOption.dataType, contentType: defaultOption.contentType, beforeSend: function (XMLHttpRequest) { defaultOption.beforeSend(XMLHttpRequest); }, //dataFilter: function (data, type) { // defaultOption.dataFilter(data, type); //}, success: function (data, textStatus, jqXHR) { var i = true; var datas = data; if (defaultOption.sAlert && typeof data != "object") { datas = JSON.parse(data); } if (defaultOption.sAlert && defaultOption.sAlertOrder && datas.SuccessStr != null && datas.SuccessStr != "undefined" && $.trim(datas.SuccessStr) != "") { $.gritter.add({ title: "提示", text: datas.SuccessStr, class_name: 'gritter-success ' }); i = false; } if (!i) { setTimeout(function () { defaultOption.success(data, textStatus, jqXHR); defaultOption.execomplete(data, textStatus, jqXHR); }, 400); } else { defaultOption.success(data, textStatus, jqXHR); if (i && defaultOption.sAlert && datas.SuccessStr != null && datas.SuccessStr != "undefined" && $.trim(datas.SuccessStr) != "") { $.gritter.add({ title: "提示", text: datas.SuccessStr, class_name: 'gritter-success ' }); } setTimeout(function () { defaultOption.execomplete(data, textStatus, jqXHR); }, 400); } }, error: function (XMLHttpRequest, textStatus, errorThrown) { var i = true; if (defaultOption.eAlertStrOrder && defaultOption.eAlertStr != null && defaultOption.eAlertStr != "undefined" && $.trim(defaultOption.eAlertStr) != "") { $.gritter.add({ title: "提示", text: defaultOption.eAlertStr, class_name: 'gritter-error ' }); i = false; } if (!i) { setTimeout(function () { defaultOption.error(XMLHttpRequest, textStatus, errorThrown); defaultOption.execomplete(data, textStatus, jqXHR); }, 400); } else { defaultOption.error(XMLHttpRequest, textStatus, errorThrown); if (i && defaultOption.eAlertStr != null && defaultOption.eAlertStr != "undefined" && $.trim(defaultOption.eAlertStr) != "") { $.gritter.add({ title: "提示", text: defaultOption.eAlertStr, class_name: 'gritter-error ' }); setTimeout(function () { defaultOption.execomplete(data, textStatus, jqXHR); }, 400); } } }, complete: function (XMLHttpRequest) { defaultOption.complete(XMLHttpRequest); }, context: defaultOption.context, global: defaultOption.global, ifModified: defaultOption.ifModified, jsonp: defaultOption.jsonp, jsonpCallback: defaultOption.jsonpCallback, username: defaultOption.username, password: defaultOption.password, processData: defaultOption.processData, scriptCharset: defaultOption.scriptCharset, traditional: defaultOption.traditional, //xhr: function () { // defaultOption.xhr(); //} }); } else { console.log("參數格式不正確"); } }, mpost: function (url, data, callback, type) { if (jQuery.isFunction(data)) { type = type || callback; callback = data; data = undefined; } return $.majax({ url: url, type: "post", dataType: type, data: data, success: callback }); }, mget: function (url, data, callback, type) { if (jQuery.isFunction(data)) { type = type || callback; callback = data; data = undefined; } return $.majax({ url: url, type: "get", dataType: type, data: data, success: callback }); }, });
成功的提示的插件為 $.gritter自行引用,也可以自己改成你們項目里的,注意下我這提示用的返回字段也要更改成你們項目的
文章列表
全站熱搜
留言列表