java原生封装_[Java教程]原生AJAX封装
[Java教程]原生AJAX封裝
0 2016-07-12 13:00:08
回歸下原生js,網上看到的AJAX封裝,遂拿來改改,不知還有何弊端,望指出!1 var ajaxHelper = { 2 /*1.0 瀏覽器兼容的方式創建異步對象*/ 3 makeXHR: function () { 4 //聲明異步對象變量 5 var false; 6 //聲明 擴展 名 7 var ]; 8 //判斷瀏覽器是否支持 9 if (window.10 new 11 }12 //否則,只能循環遍歷老式瀏覽器異步對象名,嘗試創建,知道創建成功為止13 else if (window.ActiveXObject) {14 for (i = 0; i < ) {15 new ActiveXObject(16 if (17 break;18 }19 }20 }21 //判斷 異步對象 是否創建 成功,如果 成功,則返回異步對象,否則返回false22 return false;23 },24 /*2.0 發送Ajax請求*/25 doAjax: function (method, url, data, isAyn, callback, type) {26 method = method.toLowerCase();27 //2.1創建異步對象28 var xhr = this.makeXHR();29 //2.2設置請求參數(如果是get,則帶url參數,如果不是,則不帶)30 xhr.open(method, url + (method == "get" ? "?" + data : ""), isAyn);31 //2.3根據請求謂詞(get/post),添加不同的請求頭32 if (method == "get") {33 xhr.setRequestHeader("If-Modified-Since", 0);34 } else {35 xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");36 }37 //2.4設置回調函數38 xhr.onreadystatechange = function () {39 //如果接受完畢 服務器發回的 響應報文40 if (xhr.readyState == 4) {41 //判斷狀態碼是否正常42 if (xhr.status == 200) {43 if (type.toLowerCase() == "json") {44 var ret = {};45 try {46 if (JSON) {47 ret = JSON.parse(xhr.responseText);48 } else {49 //IE8以下不支持JSON50 ret = new Function("return " + xhr.responseText);51 }52 callback(ret);53 } catch (e) {54 console.log(e.message);55 callback(false);56 }57 } else {58 //直接返回文本59 callback(xhr.responseText);60 }61 } else {62 console.log("AJAX Status Code:" + xhr.status);63 callback(false);64 }65 }66 };67 //2.5發送(如果是post,則傳參數,否則不傳)68 xhr.send(method != "get" ? data : null);69 },70 /*3.0 直接發送Post請求*/71 doPost: function (url, data, isAyn, callback, type) {72 this.doAjax("post", url, data, isAyn, callback, type);73 },74 /*4.0 直接發送Get請求*/75 doGet: function (url, data, isAyn, callback, type) {76 this.doAjax("get", url, data, isAyn, callback, type);77 }78 };
假設一個需求,后端要求傳入兩個數字n1、n2,然后返回總和。
當其中一個參數為空或者不是數字時,返回:{"status":"0", "msg":"參數有誤!"}
當正確的時候,返回:{"status":"1", "sum":"//n1加n2的和"}
后端的代碼就不貼出來了。
前端調用:1 document.getElementById("btnSubmit").onclick = function () { 2 ajaxHelper.doPost("后端url", "n1=10&n2=25", true, function (ret) { 3 if (!ret) { return; } 4 if (ret.status != 1) { 5 alert(ret.msg); 6 return; 7 } 8 var n = ret.sum; 9 var s = ret.status;10 }, "json");11 };
本文網址:http://www.shaoqun.com/a/239114.html
*特別聲明:以上內容來自于網絡收集,著作權屬原作者所有,如有侵權,請聯系我們:admin@shaoqun.com。
ajax
0
總結
以上是生活随笔為你收集整理的java原生封装_[Java教程]原生AJAX封装的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: aes c# java_AES加密,C#
- 下一篇: java max sum_杭电1024