52,782
社区成员
发帖
与我相关
我的任务
分享
function onException(e) {
return false;
}
function donothing(){}
function xmlhttp()
{
var xconn, bComplete = false;
this.request = function( sUrl, oReq ){
if(window.XMLHttpRequest){
xconn = new XMLHttpRequest();
}
// 支持ActiveX
else if(window.ActiveXObject){
try{
xconn = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e){
xconn = new ActiveXObject("Microsoft.XMLHTTP");
}
}
if (!xconn){
return false;
}
bComplete = false;
if( !oReq.method ) oReq.method = "GET";
oReq.method = oReq.method.toUpperCase();
async = true;
if( oReq.async == undefined ) async = true;
else if( oReq.async == false || oReq.sync ==true )
async = false;
parameters = oReq.parameters || '';
if (parameters.length > 0)
parameters += '&_ajax=1';
try {
aUrl = sUrl;
if ( oReq.method == "GET"){
if (parameters.length > 0){
aUrl += ( sUrl.match(/\?/) ? '&' : '?') + parameters;
}
parameters = "";
}
xconn.open( oReq.method, aUrl, async );
if( async){
xconn.onreadystatechange = function(){
try{
state = xconn.readyState;
//log4.info( "state:" + state );
(oReq.onReadyState||donothing)( xconn, oReq);
if ( state == 1 && !bComplete){
(oReq.onLoading||donothing)(xconn, oReq);
}
else if ( state == 2 && !bComplete){
(oReq.onLoaded||donothing)(xconn, oReq);
}
else if ( state == 3 && !bComplete){
(oReq.onInteractive||donothing)(xconn, oReq);
}
else if ( state == 4 && !bComplete){
bComplete = true;
(oReq.onComplete||donothing)(xconn, oReq);
retstatus = xconn.status;
if( retstatus != undefined ){
(oReq.onStatus||donothing)( xconn, oReq);
}
if( retstatus == undefined || retstatus == 0 || (retstatus >= 200 && retstatus < 300) ){
(oReq.onSuccess||donothing)(xconn, oReq);
}
else{
(oReq.onFail||donothing)(xconn, oReq);
}
}
}
catch(e){
(oReq.onException||onException)(e);
}
};
}
this.setRequestHeaders( sUrl, oReq );
xconn.send( parameters );
if( !async ){
(oReq.onComplete||donothing)(xconn, oReq);
retstatus = xconn.status;
if( retstatus != "undefined" ){
(oReq.onStatus||donothing)( xconn, oReq);
}
if( retstatus == undefined || retstatus == 0 || (retstatus >= 200 && retstatus < 300) ){
(oReq.onSuccess||donothing)(xconn, oReq);
}
else{
(oReq.onFail||donothing)(xconn, oReq);
}
}
}
catch(z) {
return (oReq.onException||onException)(z);
}
return true;
};
this.setRequestHeaders=function( sUrl, oReq ) {
var requestHeaders = ['X-Requested-With', 'XMLHttpRequest'];
if( oReq.method == 'POST') {
requestHeaders.push('Content-type', 'application/x-www-form-urlencoded');
requestHeaders.push("Method", "POST "+sUrl+" HTTP/1.1");
if( xconn.overrideMimeType)
requestHeaders.push('Connection', 'close');
}
if (oReq.requestHeaders)
requestHeaders = requestHeaders.concat( oReq.requestHeaders);
for (var i = 0; i < requestHeaders.length; i += 2)
xconn.setRequestHeader(requestHeaders[i], requestHeaders[i+1]);
};
this.loadJson = function( jsUrl, oReq ){
idstr = "jsonId_"+ ( oReq.jsonId||(new Date().getTime()) );
var elm=document.getElementById(idstr);
if( elm && oReq.cache ){
elm.src = jsUrl + (jsUrl.indexOf("?")>0?"&":"?") +"loadJson="+(new Date().getTime());
}
else{
if( elm ){
elm.parentNode.removeChild(elm);
}
elm = document.createElement("script");
elm.id=idstr;
document.body.appendChild(elm);
elm.src = jsUrl + (jsUrl.indexOf("?")>0?"&":"?") +"loadJson="+(new Date().getTime());
}
var repeat = 0;
if( oReq.callback )
setTimeout( function(){(oReq.callback||donothing)(oReq);} , 500 );
};
return this;
}
这里this.request = function( sUrl, oReq )当sUrl是webSite/webSite.js就可以正常 是http://keyword.bbapp.net:8021/webSite/webSite.js就不可以了 请问大家这是为什么 加上绝对路径是方便其他地方调用的