jquery.nette AJAX vrací celé tělo místo JSON snippetů

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

Zdravím,
právě se snažím udělat si AJAXovou komponentu, ale narazil jsem na následující:

  • ve stránce mám vložené jquery.js a jquery.nette.js
  • na zkoušku jsem dal jednomu odkazu ve stránce class=„ajax“
  • po kliknutí na tento odkaz se mi v konzoli Opera Dragonfly objeví výjimka:

Invalid JSON: <!DOCTYPE HT…
vyhozená z jquery.js.
Jinými slovy to vypadá tak, že nette místo JSONu se snippety zasílá jako odpověď na AJAX celý dokument bez JSONu.
Krátká historie: udělal jsem si kousek stránky ajaxový, šlapalo to. Pak jsem to přehodil do komponenty, přestalo to šlapat. A teď, ikdyž vyhodím tu komponentu, a vlastně vyházím úplně celou šablonu, a nechám v ní kromě hlavičky jen

{snippet}aa<a class="ajax" href="{link this}">test</a>
{/snippet}

tak se to chová pořád stejně, AJAX nefunguje, dragonfly hází stejnou výjimku.
Vím, že je to dost hrozně položený dotaz, ale vůbec netuším, kde hledat, co jsem mohl pokazit, že se AJAX začal chovat takhle divně. Poraďte alespoň, prosím, kde vůbec může být příčina toho, že nette posílá na AJAX request tuhle blbost místo JSONu. Díky.

Editoval amik (24. 4. 2010 16:23)

Mikulas Dite
Člen | 756
+
0
-

Asi špatně invaliduješ (nebo možná vůbec).

Panda
Člen | 569
+
0
-

Může to blbnout kvůli chybně použitým zavináčům. Ideální by bylo, kdyby jsi se podělil o kódy šablon – layoutu, view i komponenty.

Honza Kuchař
Člen | 1662
+
0
-

Nejspíš, vůbec neinvaliduje snippet. Pokud vím, tak je v Nette pořád ještě chyba, že pokud přijde AJAXový požadavek, ale nezinvaliduješ žádný snippet, tak se pošle celá stránka. Dočasné řešení: do basepresenteru $this->invalidateControl("nazevKteryVubecNemusiExistovatAleJenZpusobiZeSeOdesleOdpovedJakoJSON"); (možná už je to v Nette opraveno, to teď nevím)

Editoval honzakuchar (25. 4. 2010 12:32)

Panda
Člen | 569
+
0
-

Taková chyba tam asi nebude, nepamatuji si, že by se mi to někdy stalo v případě, že bych neinvalidoval žádný snippet. Naproti tomu se mi to stávalo, když jsem si zahrával s temnou zavináčovou magií.

Honza Marek
Člen | 1664
+
0
-

Mě se to stává ve firefoxu na localhostu při prvnim kliknutí na odkaz.

Panda
Člen | 569
+
0
-

No jo, je tam… Myslel jsem, že bude starší, ale ono ne. Je tam od října a nejsem si jistý, jestli je to chyba: https://github.com/…7722cbf61d4d

Honza Kuchař
Člen | 1662
+
0
-

Myslím, že to je chyba, takže jsem se to pokusil zapsat sem: https://forum.nette.org/…adny-snippet. //EDIT: Nebo rozhodně neočekávané chování.

Editoval honzakuchar (25. 4. 2010 19:54)