Seite 1 von 1

cgi print ohne Content...?

Verfasst: Mittwoch 30. September 2009, 20:57
von krisi12345
HI!
Mein Problem ist das Ich eine Python Datei habe die per CGI mit einer Javascript/HTML kommuniziert.
Die Datei soll wenn alles Okay ist den Wert "okay" ausgeben und wenn nicht "no".
Wenn Ich aber die Daten ohne "Content-Type: text/html" schicken will wird ein "500" Fehler ausgegeben, wenn Ich aber "Content-Type: text/html" einfüge kann Ich in Java-script wiederum den Wert nicht mit "if" abfragen da der Browser das "Content-Type: text/html" sozusagen verschlingt und anzeigt oder auswertet.
Ich habe es schon mit \n\n im if Teil versucht ging aber auch nicht.

Weis einer eine Lösung?

Die kommplette Ausgebe der Py datei sieht folgendermaßen aus:

Code: Alles auswählen

  print "Content-Type: text/html"
  print
  print "okay"

Verfasst: Mittwoch 30. September 2009, 22:29
von Leonidas
Von welchem JavaScript sprichst du?

Verfasst: Donnerstag 1. Oktober 2009, 16:24
von krisi12345
Javascript! Das das in HTML bzw. Internet Browsern verwendet wird.

Verfasst: Donnerstag 1. Oktober 2009, 16:33
von DasIch
Ich glaube Leonidas meint den Javascript Code der nirgends hier zu sehen ist.

Verfasst: Donnerstag 1. Oktober 2009, 20:10
von krisi12345
Oh! :D
Ein Teil des Codes, im Rest des Codes steht nur Ajax Zeugs drin:

Code: Alles auswählen

....
                          	if (req.responseText == "no") {
                            		em1.className = "in1error";
                            	}
....
Wie schon gesagt: Im if Teil des Java Codes kann ich nur "no"/"okay" abfragen aber im Python Code muss aber auch Content-Type:.... davor stehen.

Verfasst: Freitag 2. Oktober 2009, 13:37
von Hyperion
Ich denke der Code reicht nicht aus, das Problem nachvollziehbar zu machen! Gib doch einfach mal ein minimales Beispiel...

Verfasst: Freitag 2. Oktober 2009, 18:03
von gerold
krisi12345 hat geschrieben:

Code: Alles auswählen

....
                          	if (req.responseText == "no") {
                            		em1.className = "in1error";
                            	}
....
Hallo krisi!

Erstens, würde ich nicht "text/html" zurück liefern, sondern "text/plain". Und ja, die Angabe des Heades ist zwingend. Der Browser erwartet das auch so. Der will wissen, was du ihm da so zurück lieferst. Und das gibt man im Kopf der CGI-Rückgabe an.

Zweitens kannst du dir ja mit ``alert(req.responseText)`` anzeigen lassen, was du vom Browser als responseText zur Verfügung gestellt bekommst. Dann kannst du deine eigenen Schlüsse daraus ziehen.

mfg
Gerold
:-)