[JS] request-funktion coden

umwelt

Member
8 Oktober 2006
12
1
hallo,

ich möchte eine funktion coden, die mir die antwort des servers auf einen XMLHttpRequest() zurückgibt (per return).

mein werk sieht bisher so aus

Code:
function load_data(url) {

server_request(url);

	function server_request(url) {
	
	var handle=null;
	
		if(typeof XMLHttpRequest != "undefined") {
		handle = new XMLHttpRequest();
		}
		
		if(handle) {
	
		handle.open("GET", url, true);
		handle.send(null);
	
			handle.onreadystatechange=function() {
			
				if(handle.readyState==4) {
				
					if(handle.status==200) {
					
					server_response(handle);

					}
					else {
					alert("Fehler - "+handle.status);
					}
				
				}
			
			};

		}
		else {
		alert("handle nicht initialisiert");
		}

	}

	function server_response(handle1) {
	return_string = handle1.responseText;
	}
return return_string;

}

logisch - aber irgendwie find ich grad keine andere lösung - gibt die funktion beim ersten mal ein "undefined" aus. beim 2. aufruf klappts aber...

jemand ne idee, wie ich _immer_ die richtige ausgabe erreiche?

hat vermutlich mit AJAX weniger zu tun, als mit der anordnung der anweisungen :)

gruß:

kilian
 
du hast deinen ajax-Request als asynchron definiert, und deshalb kann es passieren das deine Funktion schon ein return liefert bevor die Daten überhaupt schon geladen worden und umgekehrt.
Um deine Idee umzusetzen solltest du den Request als synchron definieren, was der kompletten Idee von AJAX wiederspricht oder dich nochmal genauestens mit der Umsetzung beschäftigen.