[AJAX] kein Responsetext -> was mache ich falsch?

klanawagna

Erfahrenes Mitglied
Hallo Leute!

Ich habe ein gröberes Problem: ich bekomme keinen Responsetext, egal mit welchem Framework (prototype, selbstgeschrieben, jquery) von irgendeiner Datei! Die Anfrage wird abgesendet, die Datei aufgerufen, eventuelle Querys, die in den Dateien stehen werden ausgeführt aber die Datei gibt nichts zurück.

woran kanns liegen?

Client: -Firefox 3.6.9 auf Ubuntu (ie auf winxp führt den schmarren gar ned aus)
Server: lampp auf localhost.

der Code:
HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Inis Mona</title>
<meta name="generator" content="Bluefish 1.0.7">
<meta name="date" content="2010-09-30T06:45:43+0200">
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<meta http-equiv="content-type" content="application/xhtml+xml; charset=ISO-8859-1">
<meta http-equiv="content-style-type" content="text/css">
<meta http-equiv="expires" content="0">
<link href="style.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="functions.js"></script>
<script type="text/javascript" src="prototype.js"></script>
<script type="text/javascript" src="md5.js"></script>
<script type="text/javascript">
function checkSignIn()
{
	formular = document.forms[0];
	
	new Ajax.Request('/gna.txt', { method:'get',
  onSuccess: function(transport, json){
      alert(json ? Object.inspect(json) : "no JSON object");
    }
  });

		var response = "";
		response = ajaxPost("ajaxsql.php", '');
		alert(response);
		
}
</script>
</head>
<body>
<div class="center">
<form method="POST">
Emailadresse <br />
<p class="sub">für Login benötigt</p>
<input type="text" name="Email" size="40" maxlength="100"> <br />
</form>
</div>
</body>
</html>

*heul* Alles probiert - nix geht!

hat jemand einen Überblick? auch wenn der Charset auf Utf-8 steht gehts nicht.

Danke!
 
HI,

kann das sein das die Funktion checkSignIn gar nicht aufgerufen wird? Oder übersehe ich da was?

mfg

Code:
<button name="submit" value="Abschicken" onClick="checkSignIn()">Abschicken</button>
sorry, hab ich bei der Code-"Zensur" mitzensiert ;)
Ja, wird sie, die alertbox kommt. und alles andere was ich in der Funktion ausgeführt wird auch.
 
Hi,

ich tippe mal auf Folgendes:
In ajaxPost erfolgt ein asynchroner Request. Da hat zur Folge, dass der Request noch läuft bzw. noch nicht beendet ist und somit noch keine Rückgabe existiert. Besser die Antwort in der callback-Funktion verarbeiten.

Ciao
Quaese
 
function ajaxPost ( url, params )
{
var http = new XMLHttpRequest();

http.open("POST", url, true);
http.overrideMimeType('text/xml; charset=iso-8859-1');
//Send the proper header information along with the request
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.setRequestHeader("Content-length", params.length);
http.setRequestHeader("Connection", "close");

http.onreadystatechange = function() {//Call a function when the state changes.
if(http.readyState == 4 && http.status == 200) {
return http.responseText;
}
else
{
return 1;
}
}
http.send(params);
}

var http = new XMLHttpRequest();
-> Ja ich weiß, kein ie und co...

Das ist meine Funktion, da dürfte ja auch nix falsch sein, oder?
 
Hi,

wie bereits von mir vermutet, willst du das Ergenis ausgeben, wenn es noch nicht vorliegt - der Request läuft noch.

Im Detail:
- der asynchrone Request wird abgesetzt (ajaxPost)
- während der Request noch läuft, werden die nächste Anweisungen abgearbeitet (alert(response)); es wird also auf einen Wert zugegriffen, der zu diesem Zeitpunkt noch nicht vorliegt

Willst du, dass die Ausführung erst weiterlaufen soll, wenn der Request abgeschlossen ist, musst du eine synchrone Abfrage durchführen - drittes Argument in der Methode open muss false gesetzt werden.
Allerdings ist zu beachten, dass der Browser während der Ausführung des Requests nicht mehr reagiert.

Am besten verlagerst du jedoch die Anweisungen, die nach dem Request abgearbeitet werden sollen, in die callback-Funktion.

Ciao
Quaese
 

Neue Beiträge

Zurück