Serverseitige Bearbeitung Von Ajax-Requests

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Gira
User
Beiträge: 5
Registriert: Mittwoch 2. Mai 2012, 17:22

Hallo zusammen,
ich bin absoluter Neuling in Sachen Cherrypy und Ajax und stehe gerade vor folgendem Problem:
Ich habe bisher einen Server in Cherrypy und ein Javascript geschrieben. Jetzt soll ein Austausch der Daten via Ajax erfolgen. Auf der Client-Seite habe ich das wie folgt gelöst:

Code: Alles auswählen

var XMLHTTP = null;

if(window.XMLHttpRequest)
{
	XMLHTTP = new XMLHTTPRequest();
}
else if (window.ActiveXObject) 
{
	try
	{
		XMLHTTP = new ActiveXObject("Msxml2.XMLHTTP");
	}
	catch (ex) 
	{
		try
		{
		  XMLHTTP = 
			new ActiveXObject("Microsoft.XMLHTTP");
		}
		catch (ex)
		{
		}
	}
}
  var jsObj = {
  "Gewählt": Auswahl1,
  "json_code": true,
  };
  var jsonCode = JSON.stringify(jsObj);
  document.write(jsonCode);

  XMLHTTP.open("GET", "daten.txt", true);
  XMLHTTP.onreadystatechange = DatenAusgeben;
  XMLHTTP.send(null);
 
  location.href="Seite2.html";
}
Jetzt stehe ich nur vor dem Problem wie ich das ganze Server-Seitig entgegen nehmen und verarbeiten soll?

Danke für die Hilfe!
Zuletzt geändert von Anonymous am Mittwoch 2. Mai 2012, 17:42, insgesamt 1-mal geändert.
Grund: Quelltext in JavaScript-Code-Tags gesetzt.
BlackJack

@Gira: Was ist denn jetzt die konkrete Frage? Das funktioniert auf der Serverseite wie jede andere Anfrage auch. Es wird eine URL angefragt, möglicherweise mit Anfragedaten per GET oder POST, und der Server erstellt und sendet eine Antwort.
lunar

@Gira: Im Übrigen würde man vernünftigerweise auch eher jQuery oder eine ähnliche Bibliothek verwenden, da manuelle XMLHttpRequests – wie Du wahrscheinlich schon selbst festgestellt hast – ziemlich unschön sind :)
Gira
User
Beiträge: 5
Registriert: Mittwoch 2. Mai 2012, 17:22

Meine konkrete Frage ist wie ich das auf der Server-Seite implementiere. Ich habe absolut gar keine Ahnung wie ich das implementieren soll weil ich so ein Zusammenspiel zwischen Cherrypy und Ajax noch nie realisiert habe und auch nicht viel dazu finde.

Die XMLHTTPRequests hab ich noch nicht austesten können aber wenn man das mit einer jQuery besser lösen kann werde ich das ausprobieren. Vielen Dank für den Tip :)
lunar

@Gira: An der Server-Seite ist nichts besonderes! Du erhältst eine normale GET-Anfrage an die URL, an welche Du den AJAX-Request schickst. Diese kannst Du behandeln wie jede andere auch, nur dass Du im Response statt einer vollständigen HTML-Seite halt JSON-Daten zurückgibst.
Gira
User
Beiträge: 5
Registriert: Mittwoch 2. Mai 2012, 17:22

@lunar:
Kannst du mir für die server-implementierung vielleicht ein Beispiel geben?
Benutzeravatar
/me
User
Beiträge: 3556
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

Gira hat geschrieben:Kannst du mir für die server-implementierung vielleicht ein Beispiel geben?
Ich kenne CherryPy nicht mehr gut genug, aber das sollte jetzt wirklich kein Problem sein. Du hast doch gesagt, dass du bereits CherryPy verwendet hast. Dann erstelle jetzt auf die gleiche Art und Weise Code für den Ajax-Abruf.

Du kannst dir auch mal das Beispiel unter http://ginstrom.com/scribbles/2010/03/0 ... nd-jquery/ ansehen. Dort wird JSON als Rückgabeformat verwendet aber du kannst natürlich auch etwas beliebiges anderes nehmen.
Gira
User
Beiträge: 5
Registriert: Mittwoch 2. Mai 2012, 17:22

Hallo,
ich versuche mich jetzt mit den JQuerys und tüftle fleißig damit rum. Allerdings werde ich seit Stunden eine Fehlermeldung nicht los (HTTPError: (400, 'Unexpected body parameters: rbraum') ) und ich sehe einfach nicht wo mein Fehler liegen könnte :K

Wäre toll wenn einer mal kurz drüber gucken könnte und vielen vielen Dank für eure bisherige Hilfe!!!


<html>
<head>
<title> </title>
<script type="text/javascript" src="/media/jquery-1.4.2.min.js"></script>
<script type="text/javascript">
$(function() {
// displays the selected radio button in an alert box
alert($('input[name=sample]:checked').val())

});

</script>
</head>

<body>
<h1 id="title">Raum?</h1>
<form id="raum" method="post">
<p>
<p>
<input type="radio" name="rbraum" value="Hoersaal" checked /> H&oumlrsaal <br>
<input type="radio" name="rbraum" value="Laborraum" /> Laborraum <br>
<input type="radio" name="rbraum" value="Aufenthaltsraum" /> Aufenthaltsraum <br>
<input type="radio" name="rbraum" value="Multifunktionsraum" /> Multifunktionsraum <br>
</p>
<input type="submit" value="Set" />
</p>
</form>
</body>
</html>
BlackJack

@Gira: Was hat der gezeigte Quelltext mit Ajax zu tun? Ich sehe da nur eine ganz normale HTTP-Anfrage mit POST-Argumenten. Kommt der Code hinter der (impliziten) URL damit zurecht?
Gira
User
Beiträge: 5
Registriert: Mittwoch 2. Mai 2012, 17:22

@BlackJack: Welchen Code meinst du? Den, den ich als erstes gepostet habe oder den aktuelleren?
BlackJack

@Gira: Ich meine den Code den Du noch gar nicht gezeigt hast. Der Code hinter der URL ist der auf dem Server. Was nichts daran ändert, dass in Deinem HTML-Formular Ajax überhaupt keine Rolle spielt. Ich bin mir langsam nicht mehr so sicher dass Du selbst überhaupt weisst was Du eigentlich machen und fragen willst.
Antworten