一個(gè)AJAX類代碼
更新時(shí)間:2010年01月17日 21:31:09 作者:
以前寫的一個(gè)AJAX類,兼容性還不錯(cuò),簡單易用,記下了方便以后找 :)
基本用法:
var ajax = new AjaxObj(url);
ajax.addListener(200, function(r){
alert(r);
});
ajax.send();
也可以連續(xù)調(diào)用:
var ajax = new AjaxObj(url).addListener(200, function(r){
alert(r);
}).send();
另外還支持自定義的POST或GET方式請(qǐng)求,以及監(jiān)視不同的HTTP狀態(tài)碼,自己看代碼琢磨吧 :)
完整代碼:
AjaxObj = function(url, method, content){
this.r = null;
this.url = url;
this.method = method;
this.content = content;
this.header = {};
this.header["Connection"] = "close";
this.header["Content-type"] = "application/x-www-form-urlencoded";
var self = this;
if(window.XMLHttpRequest){
this.r = new XMLHttpRequest();
}else if(window.ActiveXObject){
try {
this.r = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
try{
this.r = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {
}
}
}
this.addListener = function(http_status, func){
if(!this.L)
this.L=[];
this.L[http_status] = func;
return this;
};
this.setHeader = function(name, value){
this.header[name] = value;
this.r.setRequestHeader(name, value);
return this;
};
this.send = function(){
if(this.method != "post" && this.method != "get")
this.method = "get";
this.r.open(this.method, this.url, true);
for(var h in this.header) {
this.r.setRequestHeader(h, this.header[h]);
}
this.r.send(this.content);
};
if(this.r) this.r.onreadystatechange = function(){
if(self.r.readyState == 4 && self.L[self.r.status] != null)
self.L[self.r.status](self.r.responseText);
};
};
復(fù)制代碼 代碼如下:
var ajax = new AjaxObj(url);
ajax.addListener(200, function(r){
alert(r);
});
ajax.send();
也可以連續(xù)調(diào)用:
復(fù)制代碼 代碼如下:
var ajax = new AjaxObj(url).addListener(200, function(r){
alert(r);
}).send();
另外還支持自定義的POST或GET方式請(qǐng)求,以及監(jiān)視不同的HTTP狀態(tài)碼,自己看代碼琢磨吧 :)
完整代碼:
復(fù)制代碼 代碼如下:
AjaxObj = function(url, method, content){
this.r = null;
this.url = url;
this.method = method;
this.content = content;
this.header = {};
this.header["Connection"] = "close";
this.header["Content-type"] = "application/x-www-form-urlencoded";
var self = this;
if(window.XMLHttpRequest){
this.r = new XMLHttpRequest();
}else if(window.ActiveXObject){
try {
this.r = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
try{
this.r = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {
}
}
}
this.addListener = function(http_status, func){
if(!this.L)
this.L=[];
this.L[http_status] = func;
return this;
};
this.setHeader = function(name, value){
this.header[name] = value;
this.r.setRequestHeader(name, value);
return this;
};
this.send = function(){
if(this.method != "post" && this.method != "get")
this.method = "get";
this.r.open(this.method, this.url, true);
for(var h in this.header) {
this.r.setRequestHeader(h, this.header[h]);
}
this.r.send(this.content);
};
if(this.r) this.r.onreadystatechange = function(){
if(self.r.readyState == 4 && self.L[self.r.status] != null)
self.L[self.r.status](self.r.responseText);
};
};
相關(guān)文章
Ajax實(shí)現(xiàn)表格中信息不刷新頁面進(jìn)行更新數(shù)據(jù)
這篇文章主要為大家詳細(xì)介紹了Ajax實(shí)現(xiàn)表格中的信息不刷新頁面進(jìn)行更新數(shù)據(jù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-10-10
如何解決Ajax的content-download時(shí)間過慢問題
這篇文章主要介紹了Ajax的content-download時(shí)間過慢問題的解決方法及思考過程,本文通過事件背景,過程分析,給大家介紹的非常詳細(xì),需要的朋友參考下吧2018-04-04
js實(shí)現(xiàn)簡單實(shí)用的AJAX完整實(shí)例
這篇文章主要介紹了js實(shí)現(xiàn)簡單實(shí)用的AJAX的方法,以完整實(shí)例形式分析了ajax無刷新調(diào)用的具體實(shí)現(xiàn)步驟與相關(guān)技巧,代碼備有詳盡的注釋便于理解,需要的朋友可以參考下2016-02-02
JQuery中Ajax的Post提交在IE下中文亂碼的解決方法
在JQuery的Ajax POST請(qǐng)求中,進(jìn)行請(qǐng)求,其中的中文在后臺(tái),顯示為亂碼,在FF/Chrome中,可以正常傳遞中文,但是在IE下,則存在問題2014-05-05
利用AJAX開源項(xiàng)目 在網(wǎng)頁里播放視頻實(shí)現(xiàn)方法
下載videobox 1.1.zip把它解壓到asp.net項(xiàng)目的目錄下,并用“Add New Item”新建一個(gè)Html文件用以播放視頻。2008-11-11
asp.net jquery+ajax異步刷新實(shí)現(xiàn)示例
異步刷新想必大家并不陌生吧,本文主要為大家介紹下asp.net jquery+ajax實(shí)現(xiàn)異步刷新過程,感興趣的朋友可以參考下2013-09-09
用AJAX實(shí)現(xiàn)頁面登陸以及注冊(cè)用戶名驗(yàn)證的簡單實(shí)例
下面小編就為大家?guī)硪黄肁JAX實(shí)現(xiàn)頁面登陸以及注冊(cè)用戶名驗(yàn)證的簡單實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-10-10

