国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > AJAX > 正文

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

2024-09-01 08:33:56
字體:
供稿:網(wǎng)友

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

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

我們可以簡單實(shí)現(xiàn)一個(gè)自己的 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});POSTajax.post('/test.php', {foo: 'bar'}, function(response,xml) { //succcess},function(status){ //fail});

這里需要注意一個(gè)問題,如果我們想要發(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ù)功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對VeVb武林網(wǎng)的支持!


注:相關(guān)教程知識(shí)閱讀請移步到JavaScript/Ajax教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 当涂县| 台湾省| 宣城市| 涞水县| 大足县| 文水县| 左权县| 东兴市| 五河县| 灵石县| 浦县| 崇文区| 石门县| 沈丘县| 晋城| 观塘区| 台南县| 右玉县| 德钦县| 鹰潭市| 文登市| 汉沽区| 天镇县| 呈贡县| 开鲁县| 黄浦区| 谷城县| 高台县| 齐河县| 腾冲县| 巩留县| 河北省| 陈巴尔虎旗| 饶阳县| 疏勒县| 斗六市| 望江县| 商丘市| 澎湖县| 连江县| 铜陵市|