Zacatecnicky dotaz AJAX – vola se klasicky request

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

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

hAssassin
Člen | 293
+
0
-

@tr. > strelim od boku (AJAX zatim moc nevyuzivam). Nechybi ti v sablone {snippet} a v presenteru v metode handleTest() osetreni jestli jde o ajax (if($this->isAjax) {...}) a pripadne invalidace snippetu? Ale nevim jestli to primo souvisi s tou JS chybou.

tr.
Člen | 79
+
0
-

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 metode handleTest() osetreni jestli jde o ajax (if($this->isAjax) {...}) a pripadne invalidace snippetu? Ale nevim jestli to primo souvisi s tou JS chybou.

tr.
Člen | 79
+
0
-

Dekuji vyreseno, nahral jsem starsi verzi jquery.nette.js tu co je na webu. Vubec nic o tom nevim ale dela to to co ma.

t.