nefunkční přesměrování po ajaxovém odeslání formuláře
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- thunderbuff
- Člen | 164
Řeším záludný problém. Formuláře v aplikaci odesílám ajaxem. V souboru jquery.nette.js je přesměrování řešeno takhle:
<script>
success:function (payload) {
// redirect
if (payload.redirect) {
// tento řádek je problémový
$.get(payload.redirect);
return;
}
// snippets
if (payload.snippets) {
for (var i in payload.snippets) {
jQuery.nette.updateSnippet(i, payload.snippets[i]);
}
}
}
</script>
po odeslání formuláře se sice pošle GET požadavek, který vrátí html kód stránky, kam se má přesměrovat, ale prohlížeč samotný se nepřesměruje a příchozí data se zahodí. Pokud problémový řádek nahradím za:
<script>
window.location.href=payload.redirect;
</script>
tak přesměrování funguje bezchybně, ale přestane fungovat ajaxové filtrování v NiftyGridu (asi neinvaliduje snippety, ale také posílá redirect, takže pro uživatele filtr funguje „neajaxově“).
Jak mám zařídit, aby původní problémový řádek javascriptu opravdu přesměroval?