最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

原生JS寫Ajax的請求函數(shù)功能

 更新時間:2017年12月22日 15:52:05   作者:默默的點(diǎn)滴  
本文給大家分享一個自己寫的基于原生JS寫Ajax的請求函數(shù)功能,需要的朋友可以參考下

一般我們寫網(wǎng)頁的時候,如果用到 Ajax 請求服務(wù)器,都是使用 JQuery 等已經(jīng)封裝好的庫來調(diào)用,比較簡單。

但是一般這些庫的功能很多,引入了太多我們用不到的東西,如果我們需要寫一個功能單一,簡單的頁面,完全用不到引用如此龐大的庫文件。

我們可以簡單實(shí)現(xiàn)一個自己的 Ajax 請求功能,具體的代碼如下:

var ajax = {};
ajax.x = function () {
 if (typeof XMLHttpRequest !== 'undefined') {
 return new XMLHttpRequest();
 }
 var versions = [
 "MSXML2.XmlHttp.6.0",
 "MSXML2.XmlHttp.5.0",
 "MSXML2.XmlHttp.4.0",
 "MSXML2.XmlHttp.3.0",
 "MSXML2.XmlHttp.2.0",
 "Microsoft.XmlHttp"
 ];
 var xhr;
 for (var i = 0; i < versions.length; i++) {
 try {
 xhr = new ActiveXObject(versions[i]);
 break;
 } catch (e) {
 }
 }
 return xhr;
};
ajax.send = function (url, method, data, success,fail,async) {
 if (async === undefined) {
 async = true;
 }
 var x = ajax.x();
 x.open(method, url, async);
 x.onreadystatechange = function () {
 if (x.readyState == 4) {
 var status = x.status;
 if (status >= 200 && status < 300) {
 success && success(x.responseText,x.responseXML)
 } else {
 fail && fail(status);
 }
 }
 };
 if (method == 'POST') {
 x.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
 }
 x.send(data)
};
ajax.get = function (url, data, callback, fail, async) {
 var query = [];
 for (var key in data) {
 query.push(encodeURIComponent(key) + '=' + encodeURIComponent(data[key]));
 }
 ajax.send(url + (query.length ? '?' + query.join('&') : ''), 'GET', null, callback, fail, async)
};
ajax.post = function (url, data, callback, fail, async) {
 var query = [];
 for (var key in data) {
 query.push(encodeURIComponent(key) + '=' + encodeURIComponent(data[key]));
 }
 ajax.send(url,'POST', query.join('&'), callback, fail, async)
};

使用方法: GET

ajax.get('/test.php', {foo: 'bar'}, function(response,xml) {
 //success
},
function(status){
 //fail
});
POST
ajax.post('/test.php', {foo: 'bar'}, function(response,xml) {
 //succcess
},function(status){
 //fail
});

這里需要注意一個問題,如果我們想要發(fā)送類似

var sendCmd = "?op_code=" + code + "&op_cmd=" + cmd;
ajax.post('/control' + sendCmd,'',function(response,xml) {
 console.log('success');
},
function(status){
 console.log('failed:' + status);
});

總結(jié)

以上所述是小編給大家介紹的原生JS寫Ajax的請求函數(shù)功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家的支持!

相關(guān)文章

最新評論

嘉禾县| 德昌县| 宜都市| 五常市| 丹阳市| 盐山县| 木兰县| 肇庆市| 徐水县| 大理市| 西华县| 同心县| 萨迦县| 安康市| 承德市| 修水县| 辛集市| 柳江县| 招远市| 定远县| 凤城市| 舒兰市| 新建县| 淮阳县| 灵川县| 留坝县| 太原市| 黄平县| 高陵县| 葫芦岛市| 仁布县| 嘉祥县| 古田县| 武威市| 石棉县| 青海省| 海原县| 莱西市| 新安县| 浮山县| 读书|