Copy Code code as follows:
/**********************************************
* @author SkyZ
* @function JavaScript client ajax Dealwith
* @datetime 2006-3-20
**********************************************
* Function:create a HttpRequest object
**********************************************/
function HttpRequest () {
This._httprequest=null; HttpRequest Request Object
This._callback=null; Call back function
This._domresult=true; Result if Dom object or text string
This._requestdata=null; Request data
This._requestresult=null; HttpRequest result
This._statestring=null; Current request State string
This._error=false; Current if have error
This._callbackpara=null; Current callback function Parama
Internal method for Get Httprequestobject
This.init=function () {
Judge If not IE
if (window. XMLHttpRequest) {
This._httprequest=new XMLHttpRequest ();
Set Request MIME is Text/xml
if (This._httprequest.overridemimetype) {
This._httprequest.overridemimetype (' Text/xml ');
}
}else if (window. ActiveXObject) {
try{
This._httprequest=new ActiveXObject ("msxml2.xmlhttp");
}catch (ex) {
try{
This._httprequest=new ActiveXObject ("Microsoft.XMLHTTP");
}catch (ex) {
This._setmessage (ex,true);
Return
}
}
This._httprequest.setrequestheader ("Content-type", "text/xml;charset=gb2312");
}
Judge HttpRequest Object Create successful
if (!this._httprequest) {
This._setmessage ("XMLHttpRequest object creation failed!) Please try again ... ", true);
Return
}
}
/*
* Function:set the request header
* namepar:request ' s header name
* valuepar:request ' s header value
*/
This.dosetrequestheader=function (Namepar,valuepar) {
if (this._error) {
Return
}
This._httprequest.setrequestheader (Namepar,valuepar);
}
/*
* Function:set the request data
* datapar:request ' s send data;
*/
This.dosetrequestdata=function (Datapar) {
if (this._error) {
Return
}
This._requestdata=datapar;
}
/*
*function Get Requesthttp Object
*/
This._getrequestobj=function () {
if (this._error) {
Return
}
return this._httprequest;
}
/*
* Function:set Callback Function para
*/
This.dosetcallback=function (Callback,paradata) {
this._callback= (CallBack) callback:null;
This._callbackpara= (Paradata) paradata:null;
};
/*
* Function:get Current Statestring
*/
This.dogetstate=function () {
return this._statestring;
}
/*
* Function:get Current Error
*/
This.dogeterror=function () {
return this._error;
}
/*
*
*/
This.docallback=function () {
This._callback (This._requestresult,this._callbackpara);
}
/*
* Function:send the request
* urlpar:request ' s URL path
* [Methodpar]:request ' s method
* [Dompar]: Request ' s is DOM or string
*/
This.dosendresuest=function (Urlpar,methodpar,obj,dompar,asypar) {
if (obj._error) {
Return
}
Methodpar= ((methodpar) Methodpar: "Get");
Asypar= ((Asypar) asypar:true);
this._domresult= (Dompar) Dompar:obj._domresult;
try{
var a=this._getrequestobj ();
A.onreadystatechange=function () {
if (obj._error) {
Return
}
var readystatetmp=a.readystate;
if (readystatetmp==0) {
Obj._setmessage (uninitialized!) ");
}else if (readystatetmp==1) {
Obj._setmessage ("in read ...");
}else if (readystatetmp==2) {
Obj._setmessage ("has been read!") ");
}else if (readystatetmp==3) {
Obj._setmessage ("Switching ...");
}else if (readystatetmp==4) {
var statustmp=a.status;
if (statustmp==404) {
Obj._setmessage (the request page was not found!) ", true);
}else if (window.location.href.indexOf ("http") ==-1 | | statustmp==200) {
Obj._setmessage ("Done!") ");
if (This._domresult && window. XMLHttpRequest) {
Obj._requestresult=a.responsexml;
}else{
Obj._requestresult=a.responsetext;
}
if (obj._callback) {
Obj.docallback ();
}
}else{
Obj._setmessage ("Unknown error!") ");
}
}else{
Obj._setmessage ("Unknown error!") ");
}
}
A.open (Methodpar,urlpar,asypar);
A.setrequestheader ("If-modified-since", "0");
A.send (Obj._requestdata);
}catch (ex) {
Obj._setmessage (ex,true);
}
}
/*
* Function:deal Exception error
* Expar:error String
*/
This._setmessage=function (Expar,mark) {
This._statestring=expar.tostring ();
This._error= (Mark) Mark:false;
}
}
Local Downloads