AJAX vrací HTML kód stránky

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

Snažím se zprovoznit komponentu našeptávače a narazil jsem na problém s AJAXem. Místo aby se vrátily JSON data, vrací se HTML kód úvodní stránky aplikace. Action jsem přejmenoval na handle, zkusil jsem zavolat invalidateControl, terminate k ukončení presenteru a pořád stejný výsledek.

Používám poslední dev verzi Nette. Na starších verzích podle všeho našeptávač funguje. Neví někdo, co s tím?

Kenn
Člen | 110
+
0
-

Ty samozřejmě všude mám, na webu mi AJAX normálně funguje. Tady jaksi netuším, kam zavináč dát, když do šablony vkládám jenom soubory s JavaScriptem.

i.magine
Člen | 81
+
0
-

Ty tam nemáš ani @layout.phtml?

Kenn
Člen | 110
+
0
-

Mám normální šablony a samozřejmě používám @layout.phtml. Ve formuláři je speciální (SuggestInput) input, který dědí od inputu základního. Formulář renderuju ručně. Na webu mi funguje AJAX a to včetně formulářů (i globálních), jenom tohle nějak fungovat nechce. Hraju si s tím už nějakou dobu a teď, když o potřebuju nutně zprovoznit už jsem se ozval tady.

Editoval Kenn (5. 3. 2010 18:42)

pekelnik
Člen | 462
+
0
-

já bych to tipnul na špatné odeslání odpovědi:

zkus tohle

<?php

// ... presenter
public function renderAjax()
{
	// ...
	$this->terminate(new JsonResponse(array('foo', 'bar')));
}

?>
Kenn
Člen | 110
+
0
-

Používám

<?php
public function handleSuggestName($typedText = ''){
	$this->matches = $this['nameSuggester']->getSuggestions($typedText);
	$this->terminate(new JsonResponse($this->matches));
}
?>

Zkusil jsem použít tvůj terminate, kdybych náhodou dělal něco špatně a pořád žádná změna.

Kenn
Člen | 110
+
0
-

Vyřešeno. Nakonec jsme dospěl až do stádia hrabání se ve zdrojácích komponenty a komponenta volala špatný link. Teď už všechno funguje.