Re: Re: redirect klappt nicht
"Dieter Maurer" <[email protected]>
| Newsgroups | gmane.comp.web.zope.german |
|---|---|
| Message-ID | <[email protected]> |
T.Hinze wrote at 2008-12-17 13:47 +0100: > ... >Was mache ich denn noch falsch? Ich habe Deine Beschreibung nicht im Detail verstanden. Aber "response.redirect" funktioniert im Allgemeinen sehr zuverlässig. Es funktioniert nicht, wenn * in der weiteren Request-Bearbeitung ein weiteres "response.redirect" aufgerufen (dann wird dieses ausgeführt) oder eine Exception ausgelöst wird. Wie andere Dir ja bereits geschrieben haben, führt ein "response.redirect" nicht zum sofortigen Abbruch (und Ausführung des "redirect") sondern die Request-Bearbeitung läuft normal weiter -- und kann das frühere "redirect" unwirksam machen * "response.setStatus" hat ein optionales Argument "lock". Wird "setStatus" mit "lock=True" aufgerufen, wird der Status eingefroren und kann nicht mehr von einem folgenden "redirect" (ein enthält ein implizites "setStatus(302)") überschrieben werden. Verwende einen TCP-Logger (z.B. "etherreal", "wireshark", "tcpwatch", ....) um die Kommunikation zwischen Client und Server zu überwachen. Ein Redirect ist gekennzeichnet durch einen "location" Antwort-Header und einen Status 300 oder 302. Es gibt übrigens auch eine unmittelbar abbrechende Redirect-Variante: from zExceptions import Redirect raise Redirect(location). Achtung: dabei wir die aktuelle Transaktion abgebrochen und der Request hat keinerlei Wirkung auf persistente Daten. -- Dieter _______________________________________________ zope mailing list [email protected] https://mail.dzug.org/mailman/listinfo/zope