理解 理解 问题是 我怕那样 没有前因后果 倒是不知道我要做什么 所以就全贴出来了this.Request = function(url, options){
try{
Object.extend(this, Ajax.init);
Object.extend(this.options, options||{}); //将会覆盖Ajax.init.options中的存在的属性的默认值
this.options.url = url; var util = Ajax.prototype.Util(this.options); var transport = this.getTransport;
var callback = new Ajax.callback();
util.props.callback = function(){
try{
callback.callback(transport, util);
}catch(e){
}
} var request = new Ajax.prototype.Request(this.getTransport);
request.request(util.props);
return this;
}catch(e){
}
}Ajax.prototype.Request = function(transport){
this.request = function(options){
try{
if(options.asynchronous === true){
this.transport.onreadystatechange = this.onStateChange.bind(this, options.callback);
}
this.transport.open(options.method, options.url, options.asynchronous, options.username, options.password);
this.setHeaders(options.headers, options.method, options.contentType, options.encoding);
this.transport.send(options.sendData); if(options.asynchronous === false&&!!this.transport.overrideMimeType === true){
this.onStateChange(options.callback);
}
if(this.transport.readyState === 4){
transport.onreadystatechange = Class.emptyFunction; //avoid memory leak in IE
}
}catch(e){
}
}
this.onStateChange = function(callback){
try{
var response = new Ajax.prototype.Response(this.transport);
var readyState = response.readyState();
if(client.Browser.Firefox === true&&readyState === 1){
alert("readyState: "+readyState);
}
callback();
}catch(e){
}
}
}Ajax.prototype.Response = function(transport){
this.response = function(){
try{
var data;
if(this.readyState() === 4){
var ContentType = this.getHeaders("Content-type");
var pattern = new Array();
pattern[0] = /^\s*(text|application)\/(x-)?[a-zA-Z]*script(;.*)?\s*$/i; switch(true){
case ContentType.include("text/xml"):
data = this.transport.responseXML;
break;
case pattern[0].test(ContentType):
data = unescape(this.transport.responseText.substr(1, data.length-2));
break;
default:
data = this.transport.responseText;
break;
}
}else{
data = "data: "+this.readyState();
}
return data;
}catch(e){
}
}
}我觉得就出在这几个地方
try{
Object.extend(this, Ajax.init);
Object.extend(this.options, options||{}); //将会覆盖Ajax.init.options中的存在的属性的默认值
this.options.url = url; var util = Ajax.prototype.Util(this.options); var transport = this.getTransport;
var callback = new Ajax.callback();
util.props.callback = function(){
try{
callback.callback(transport, util);
}catch(e){
}
} var request = new Ajax.prototype.Request(this.getTransport);
request.request(util.props);
return this;
}catch(e){
}
}Ajax.prototype.Request = function(transport){
this.request = function(options){
try{
if(options.asynchronous === true){
this.transport.onreadystatechange = this.onStateChange.bind(this, options.callback);
}
this.transport.open(options.method, options.url, options.asynchronous, options.username, options.password);
this.setHeaders(options.headers, options.method, options.contentType, options.encoding);
this.transport.send(options.sendData); if(options.asynchronous === false&&!!this.transport.overrideMimeType === true){
this.onStateChange(options.callback);
}
if(this.transport.readyState === 4){
transport.onreadystatechange = Class.emptyFunction; //avoid memory leak in IE
}
}catch(e){
}
}
this.onStateChange = function(callback){
try{
var response = new Ajax.prototype.Response(this.transport);
var readyState = response.readyState();
if(client.Browser.Firefox === true&&readyState === 1){
alert("readyState: "+readyState);
}
callback();
}catch(e){
}
}
}Ajax.prototype.Response = function(transport){
this.response = function(){
try{
var data;
if(this.readyState() === 4){
var ContentType = this.getHeaders("Content-type");
var pattern = new Array();
pattern[0] = /^\s*(text|application)\/(x-)?[a-zA-Z]*script(;.*)?\s*$/i; switch(true){
case ContentType.include("text/xml"):
data = this.transport.responseXML;
break;
case pattern[0].test(ContentType):
data = unescape(this.transport.responseText.substr(1, data.length-2));
break;
default:
data = this.transport.responseText;
break;
}
}else{
data = "data: "+this.readyState();
}
return data;
}catch(e){
}
}
}我觉得就出在这几个地方
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货