Diskuze: AJAX mi chodí v Chrome, ale nechodí ve Firefox
V předchozím kvízu, Online test znalostí JavaScript, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 7 zpráv z 7.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí JavaScript, jsme si ověřili nabyté zkušenosti z kurzu.
Zkus si to zdebugovat přes developer tools. Je tam záložka Network na které vidíš jaké requesty tam lítají.
Je to docela zajímavé, když zavolám ajax a hned po něm :
location.reload();
což potřebuji, protože je tam i nastavení jazykové mutace, tak se v json změna neprojeví, když location.reload(); vynechám, proběhne vždy bez problémů.
D
už jsem na to přišel, firefox totiž z nějakého důvodu nedokončí ten ajax a jde reload, proto je potřeba:
$.ajax({
url: "save_json.php",
type: "post",
data: {oper : oper, file : file , key : key, value : value},
success: function(data) {
if ( key == "Language"){
reload.location();
}
}
});
takže udělat reload až po té, co ajax dopadne success
díky za námahu
David
'firefox ... nedokončí ten ajax' - ehm? to je preci normalni chovani asynchronniho requestu. Aspon firefox ma default nastaveny asyn typ. Tak mu vnut nastaveni na synchronni, kdyz to chces pouzivat jinak nez pres call-back (funkce v onsucess nebo onerror). A nebo nech to location v callbacku, to je stejne lepsi.
Jak píše Petr – AJAX probíhá asynchronně. To znamená, že prohlíže pošle AJAXový request, nečeká na odpověď a jede dál. Až request přijde zpět, provede se kód ve funkci success.
jo, díky, teď už vím, proč se takto chová ...
Zobrazeno 7 zpráv z 7.