MichaelR: AJAX

Beitrag lesen

Hallo zusammen,

ich bastle gerade an einer minimalen AJAX-Klasse:

  
var AJAXRequest = null;  
  
function AJAX(){  
	this.xmlHTTPObj = null;  
	this.Method = "POST";  
	this.Header = "";  
// ... andere Eigenschaften	  
	this.Create();  
}  
  
AJAX.prototype.Create = function(){  
	// construct the HTTP request object  
	try{  
		this.xmlHTTPObj = new XMLHttpRequest();  
		}  
		catch(e){  
// andere Methoden zur Erzeugung des XMLHttpRequest-Objekts				}  
}  
  
AJAX.prototype.Send = function(strURL, strDataToSend){  
	this.xmlHTTPObj.overrideMimeType("text/xml");  
	this.xmlHTTPObj.onreadystatechange = this.ProcessRequest;  
	this.xmlHTTPObj.open(this.Method, strURL, true);  
}  
  
AJAX.prototype.ProcessRequest = function(){  
//TODO  
	_this = AJAXRequest;  
	  
	switch (_this.xmlHTTPObj.readyState){  
		case 0 : // not initialised  
			break;  
		  
		case 1 : // loading ...  
			break;  
			  
		case 2 : // loaded  
			break;  
			  
		case 3 : // interacting	  
			break;  
			  
		case 4 : // done  
		if (_this.xmlHTTPObj.status == 200){  
				_this.ResponseText = _this.xmlHTTPObj.responseText;  
				_this.ResponseXML = _this.xmlHTTPObj.responseXML;  
				  
					_this.funcHandleResponse();  
					}  
				}  
				else{  
					// error status 404, 500, usw.  
					}  
			break;  
		}  
}  

So, ich erzeuge obige Klasse und setze verschiedene Parameter und dann wird die Anfrage an den Server geschickt. In der Methode ProcessRequest kennt das Objekt allerdings this.xmlHTTPObj nicht mehr und ist der Meinung es sei null. Obwohl in keinem Programmaufruf vorher oder nachher das AJAXRequest Objekt gelöscht wird.

Ich hab das ganze jetzt nur so zum Laufen gebracht, dass ich statt

this.xmlHTTPObj. ...

die obere Variante verwende und das ganze über eine Hilfsvariable mache.

Weiß jemand, warum in einer Klassenfunktion plötzlich das Objekt this.xmlHTTPObj nicht mehr existent ist?

Grüße
Michael