Ciao, questa e' una chiamata diretta
codice:$(document).ready(function(){ if(set_session()=="loaded"){ //Fa qualcosa }else{ //Fa qualcos'altro } });
Il risultato di set_session() puoi averlo solo dopo che la chiamata ajax/post ha terminato e quindi verificabile in .done().
Non puoi quindi cercare di far ritornare a set_session() un valore subito perchè non sai quanto ci metterà a completare la richiesta.
Questo in di controllo lo devi gestire all'interno di done() o errror()
Questo codice che hai messo in done
codice:equivale al controllo che vuoi fare inizialmente. Va gestito da qui ( o puoi comunque richiamare una funzione per separare nel caso il codice).codice:if(data.allowed =="true"){ $("#content .loading .operazioni").append("<br /><span style=\"color: green\">Sessione creata con successo</span>"); status_session ="loaded"; }else{ $("#content .loading .operazioni").append(session_error); status_session ="not_loaded"; }