一个AJAX客户端连接框架(自创)
一个非常小的AJAX连接框架,连名字都没有,就使用其文件名作为框架名吧--request.js
这样作只不过是未了重用而已。下面是其代码:
var http_request = false;
//连接初始化
function init_request(){
http_request = false;
//构建XMLHttpRequest实例
if(window.XMLHttpRequest) { //Mozilla 浏览器
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType) {//设置其请求头
http_request.overrideMimeType("text/xml");
}
}
else if (window.ActiveXObject) { // IE 浏览器
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!http_request) { // 构建实例失败
window.alert("构建XMLHttpRequest失败!");
return false;
}
}
/*
GET方式进行请求数据
url:请求连接地址
使用方法:你必须手写 pageChange( http_request.responseText )函数
*/
function get_request( url ){
init_request();
http_request.onreadystatechange = processRequest;
http_request.open("GET", url, true);
http_request.send(null);
}
/*
GET方式进行请求数据
url:请求连接地址
type:设置请求的数据的格式:text或者xml
使用方法:你必须手写 pageChange( http_request.responseText )函数
*/
function get_request( url, type ){
init_request();
if( type == "text" )
http_request.onreadystatechange = processRequest;
else if( type == "xml" )
http_request.onreadystatechange = processXmlRequest;
http_request.open("GET", url, true);
http_request.send(null);
}
/*
GET方式进行请求数据
url:请求连接地址
myProcess:你自己定义的事件处理函数
使用方法:你必须手写事件处理函数- myProcess,类似于processRequest函数和processXmlRequest函数
*/
function get_request2( url, myProcess ){
init_request();
http_request.onreadystatechange = myProcess;
http_request.open("GET", url, true);
http_request.send(null);
}
/*
POST方式发送数据
url:请求连接地址
sinfo:要发送的数据值
使用方法:你必须手写 pageChange( http_request.responseText )函数
*/
function post_request( url, sinfo ) {
init_request();
http_request.onreadystatechange = processRequest;
http_request.open("POST", url, true);
http_request.setRequestHeader("Content-Length",sinfo.length);
http_request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
http_request.send(sinfo);
}
/*
POST方式发送数据
url:请求连接地址
sinfo:要发送的数据值
type:设置返回数据的格式:text或者XML
使用方法:你必须手写 pageChange( http_request.responseText )函数
*/
function post_request( url, sinfo, type ) {
init_request();
if( type == "text" )
http_request.onreadystatechange = processRequest;
else if( type == "xml" )
http_request.onreadystatechange = processXmlRequest;
http_request.open("POST", url, true);
http_request.setRequestHeader("Content-Length",sinfo.length);
http_request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
http_request.send(sinfo);
}
/*
POST方式发送数据
url:请求连接地址
sinfo:要发送的数据值
myProcess:自己定义的事件处理函数
使用方法:你必须手写事件处理函数- myProcess,类似于processRequest函数和processXmlRequest函数
*/
function post_request2( url, sinfo, myProcess ) {
init_request();
http_request.onreadystatechange = myProcess;
http_request.open("POST", url, true);
http_request.setRequestHeader("Content-Length",sinfo.length);
http_request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
http_request.send(sinfo);
}
/*
处理text数据
事件处理函数,选择使用get_request等,这里必须自己手写pageChange函数
*/
function processRequest() {
if (http_request.readyState == 4) {
if (http_request.status == 200) {
pageChange( http_request.responseText );
} else {
alert("connect the server wrong!");
}
}
}
/*
处理XML数据
事件处理函数,选择使用get_request等,这里必须自己手写pageChange函数
*/
function processXmlRequest() {
if (http_request.readyState == 4) {
if (http_request.status == 200) {
pageChange( http_request.responseXml );
} else {
alert("connect the server wrong!");
}
}
}
//连接初始化
function init_request(){
http_request = false;
//构建XMLHttpRequest实例
if(window.XMLHttpRequest) { //Mozilla 浏览器
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType) {//设置其请求头
http_request.overrideMimeType("text/xml");
}
}
else if (window.ActiveXObject) { // IE 浏览器
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!http_request) { // 构建实例失败
window.alert("构建XMLHttpRequest失败!");
return false;
}
}
/*
GET方式进行请求数据
url:请求连接地址
使用方法:你必须手写 pageChange( http_request.responseText )函数
*/
function get_request( url ){
init_request();
http_request.onreadystatechange = processRequest;
http_request.open("GET", url, true);
http_request.send(null);
}
/*
GET方式进行请求数据
url:请求连接地址
type:设置请求的数据的格式:text或者xml
使用方法:你必须手写 pageChange( http_request.responseText )函数
*/
function get_request( url, type ){
init_request();
if( type == "text" )
http_request.onreadystatechange = processRequest;
else if( type == "xml" )
http_request.onreadystatechange = processXmlRequest;
http_request.open("GET", url, true);
http_request.send(null);
}
/*
GET方式进行请求数据
url:请求连接地址
myProcess:你自己定义的事件处理函数
使用方法:你必须手写事件处理函数- myProcess,类似于processRequest函数和processXmlRequest函数
*/
function get_request2( url, myProcess ){
init_request();
http_request.onreadystatechange = myProcess;
http_request.open("GET", url, true);
http_request.send(null);
}
/*
POST方式发送数据
url:请求连接地址
sinfo:要发送的数据值
使用方法:你必须手写 pageChange( http_request.responseText )函数
*/
function post_request( url, sinfo ) {
init_request();
http_request.onreadystatechange = processRequest;
http_request.open("POST", url, true);
http_request.setRequestHeader("Content-Length",sinfo.length);
http_request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
http_request.send(sinfo);
}
/*
POST方式发送数据
url:请求连接地址
sinfo:要发送的数据值
type:设置返回数据的格式:text或者XML
使用方法:你必须手写 pageChange( http_request.responseText )函数
*/
function post_request( url, sinfo, type ) {
init_request();
if( type == "text" )
http_request.onreadystatechange = processRequest;
else if( type == "xml" )
http_request.onreadystatechange = processXmlRequest;
http_request.open("POST", url, true);
http_request.setRequestHeader("Content-Length",sinfo.length);
http_request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
http_request.send(sinfo);
}
/*
POST方式发送数据
url:请求连接地址
sinfo:要发送的数据值
myProcess:自己定义的事件处理函数
使用方法:你必须手写事件处理函数- myProcess,类似于processRequest函数和processXmlRequest函数
*/
function post_request2( url, sinfo, myProcess ) {
init_request();
http_request.onreadystatechange = myProcess;
http_request.open("POST", url, true);
http_request.setRequestHeader("Content-Length",sinfo.length);
http_request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
http_request.send(sinfo);
}
/*
处理text数据
事件处理函数,选择使用get_request等,这里必须自己手写pageChange函数
*/
function processRequest() {
if (http_request.readyState == 4) {
if (http_request.status == 200) {
pageChange( http_request.responseText );
} else {
alert("connect the server wrong!");
}
}
}
/*
处理XML数据
事件处理函数,选择使用get_request等,这里必须自己手写pageChange函数
*/
function processXmlRequest() {
if (http_request.readyState == 4) {
if (http_request.status == 200) {
pageChange( http_request.responseXml );
} else {
alert("connect the server wrong!");
}
}
}
其测试用例,这里不再给出,懒人 : ))link