JSON vrací html kód celé stránky

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

Mám drobný problém s JSONem. Na webu používám AJAX pomocí snippetů a všechno mi funguje. Problém je, že u jednoho formuláře (na komentáře) chci vracet JSON. JavaScript funguje, zavolá se handle, která vyřizuje formulář, ale vrátí se HTML celé stránky. Zkoušel jsem několik kombinací, jak vracet JSON, ale pořád stejný problém.

<?php
echo json_encode($values);
$this->terminate();

//nebo
$this->terminate(new JsonResponse($values));

//nebo
return new JsonResponse($values);
?>

A výsledek pořád stejný. Nějaká rada, která by mě zachránila od úplného zblbnutí? :D

na1k
Člen | 288
+
0
-

Nejsem si jistý, ale co si pamatuju, posledně když mi ajax vracel celou stránku, jsem někde zapomněl napsat zavináč.

Jinak používám JsonResponse tak jak ukazuješ v druhém příkladu a funguje mi to bez problémů.

Kenn
Člen | 110
+
0
-

Funguje to, pokud nepoužiju AJAX na formulář přes jQuery plugin. Když jsem si handle napsal sám nezávisle na formuláři a volám ho JavaScriptem po kliknutí na submit tlačítko, funguje to. Problém je, že takto nebude formulář fungovat, když někdo vypne JavaScript.

David Grudl
Nette Core | 8228
+
0
-

Nahraď $this->terminate(); za $this->sendPayload();