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

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

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

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

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

我們可以簡單實現(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)文章

最新評論

临高县| 剑河县| 重庆市| 连江县| 石河子市| 福安市| 南郑县| 盘锦市| 华宁县| 工布江达县| 年辖:市辖区| 庆元县| 深水埗区| 禄丰县| 三门县| 景德镇市| 娱乐| 盐池县| 澎湖县| 卓尼县| 汕头市| 罗山县| 阳谷县| 济南市| 南和县| 津南区| 东源县| 临清市| 黄梅县| 郎溪县| 张掖市| 皋兰县| 蒙城县| 汉源县| 凤山市| 隆子县| 瓮安县| 娱乐| 离岛区| 大新县| 昌图县|