Zacatecnicky dotaz AJAX – vola se klasicky request
- tr.
- Člen | 79
Ahoj,
rad bych se optal co jsem prehledl. Mam v controleru:
public function handleTest() {
$this->payload->test = 'aaa, bbb';
$this->sendResponse(new Nette\Application\Responses\JsonResponse(array('a' => 1, 'b' => 2)));
}
Mam includovany JQuery a jquery.nette.js z distribuce Nette 2 (pouzivam Nette 2) – pri nacitani hlasi javascript console v Chrome ze „Uncaught TypeError: Cannot read property ‚href‘ of null“ na poslednim radku radku z:
$(window).bind('popstate', function(event) {
$.nette.href = null;
$.post(event.originalEvent.state.href, $.nette.success);
V sablone mam:
<a id="test" href="{link test!}">test</a>
a
$(function(){
$('#test').click(function(){
$.get(this.href, function(payload){
alert(payload.test);
});
return false;
});
});
Cim je prosim zpusobena ta chyba javascriptu a pripadne jak to vyresit, aby to fungovalo jako ajax. Vraci se mi totiz normalni odpoved na request.
Dekuji
- tr.
- Člen | 79
Metoda handleTest je urcena pouze pro ten ajjax, proto v ni nic nezjistuji. V sablone snippet nepotrebuji, protoze vysledek zadam jen jako JSON a chci jej cist pomoci javascriptu.
Vypada to spis, ze se odesle spetne request z te stranky, na misto AJAX requestu se posle normalni. Coz asi souvisi s tim, ze mi jquery.nette.js nahlasi tu chybu pri svem nacteni. Ale co je to za chybu opravdu netusim.
Ale dekuji za napad.
hAssassin napsal(a):
@tr. > strelim od boku (AJAX zatim moc nevyuzivam). Nechybi ti v sablone
{snippet}
a v presenteru v metodehandleTest()
osetreni jestli jde o ajax (if($this->isAjax) {...}
) a pripadne invalidace snippetu? Ale nevim jestli to primo souvisi s tou JS chybou.