java原生封装_[Java教程]原生AJAX封装
[Java教程]原生AJAX封裝
0 2016-07-12 13:00:08
回歸下原生js,網(wǎng)上看到的AJAX封裝,遂拿來改改,不知還有何弊端,望指出!1 var ajaxHelper = { 2 /*1.0 瀏覽器兼容的方式創(chuàng)建異步對象*/ 3 makeXHR: function () { 4 //聲明異步對象變量 5 var false; 6 //聲明 擴(kuò)展 名 7 var ]; 8 //判斷瀏覽器是否支持 9 if (window.10 new 11 }12 //否則,只能循環(huán)遍歷老式瀏覽器異步對象名,嘗試創(chuàng)建,知道創(chuàng)建成功為止13 else if (window.ActiveXObject) {14 for (i = 0; i < ) {15 new ActiveXObject(16 if (17 break;18 }19 }20 }21 //判斷 異步對象 是否創(chuàng)建 成功,如果 成功,則返回異步對象,否則返回false22 return false;23 },24 /*2.0 發(fā)送Ajax請求*/25 doAjax: function (method, url, data, isAyn, callback, type) {26 method = method.toLowerCase();27 //2.1創(chuàng)建異步對象28 var xhr = this.makeXHR();29 //2.2設(shè)置請求參數(shù)(如果是get,則帶url參數(shù),如果不是,則不帶)30 xhr.open(method, url + (method == "get" ? "?" + data : ""), isAyn);31 //2.3根據(jù)請求謂詞(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設(shè)置回調(diào)函數(shù)38 xhr.onreadystatechange = function () {39 //如果接受完畢 服務(wù)器發(fā)回的 響應(yīng)報文40 if (xhr.readyState == 4) {41 //判斷狀態(tài)碼是否正常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發(fā)送(如果是post,則傳參數(shù),否則不傳)68 xhr.send(method != "get" ? data : null);69 },70 /*3.0 直接發(fā)送Post請求*/71 doPost: function (url, data, isAyn, callback, type) {72 this.doAjax("post", url, data, isAyn, callback, type);73 },74 /*4.0 直接發(fā)送Get請求*/75 doGet: function (url, data, isAyn, callback, type) {76 this.doAjax("get", url, data, isAyn, callback, type);77 }78 };
假設(shè)一個需求,后端要求傳入兩個數(shù)字n1、n2,然后返回總和。
當(dāng)其中一個參數(shù)為空或者不是數(shù)字時,返回:{"status":"0", "msg":"參數(shù)有誤!"}
當(dāng)正確的時候,返回:{"status":"1", "sum":"//n1加n2的和"}
后端的代碼就不貼出來了。
前端調(diào)用: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 };
本文網(wǎng)址:http://www.shaoqun.com/a/239114.html
*特別聲明:以上內(nèi)容來自于網(wǎng)絡(luò)收集,著作權(quán)屬原作者所有,如有侵權(quán),請聯(lián)系我們:admin@shaoqun.com。
ajax
0
總結(jié)
以上是生活随笔為你收集整理的java原生封装_[Java教程]原生AJAX封装的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: aes c# java_AES加密,C#
- 下一篇: java主线程控制子线程_CountDo