Přesměrování ajaxových požadavků

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
jtousek
Člen | 951
+
0
-

Zdravím,
při pokusu o přesměrování ajaxového požadavku pomocí $this->redirect(…) v Presenteru se přesměrování neprovede, místo toho se pouze odešle payload kde je jen proměnná redirect a cílová URL adresa. Proč to tak je?
Zkusil jsem přesměrovat pomocí

<?php
$this->terminate(new Nette\Application\RedirectingResponse('/url/adresa'));
?>

jenže výsledkem byla nefunkčnost laděnky – nerozpoznala už, že jde o ajaxový požadavek (chyběla hlavička X-Requested-With) takže neposlala report na konzolu firebugu.
Jak tedy tyto požadavky přesměrovávat? Zjistit na straně klienta, že server vrátil payload s redirect a odeslat nový požadavek? Osobně mi to připadá jako zbytečný pingpong… Je možné požadavek za určité podmínky (např. uživatel nepřihlášen) přímo vnitřně přesměrovat na jiný presenter a view?

Editoval jtousek (10. 12. 2009 15:24)

redhead
Člen | 1313
+
0
-

Takhle ovšem funguje redirect (ping-pong), při redirectu je to jako kdybys vytvořil nový request na stránku, to musí ošéfovat browser. Čili ajaxově musíš vytvořit novej request. Pokud to chceš udělat v jednom requestu tak zkus metodu forward (myslím, že parametry jsou stejné jako u redirect)

Editoval redhead (10. 12. 2009 15:38)

jtousek
Člen | 951
+
0
-

redhead:
Díky moc, přesně to jsem potřeboval. :)