No logras visualizar el valor ya que se trata de una petición asíncrona (AJAX), mientras que tú intentas ver el valor en el mensaje de alerta de forma síncrona. Así la respuesta la obtengas en milésimas de segundo, el mensaje de alerta aparecerá antes de completarse la petición.
Tienes como opción el utilizar una llamada de retorno o
callback:
Código Javascript
:
Ver originalfunction ajax(callback){
$.post(/* la página de destino */, {/* los valores a enviar */}, callback);
}
//Líneas más abajo
ajax(function(mensaje){
alert(mensaje);
});
//Más abajo
ajax(function(mensaje){
alert(mensaje);
});
//Y más abajo
ajax(function(mensaje){
alert(mensaje);
});
O utilizando el objeto diferido (promesa) de jQuery:
Código Javascript
:
Ver originalvar ajax = $.post(/* la página de destino */, {/* los valores a enviar */});
//Líneas más abajo
ajax.done(function(mensaje){
alert(mensaje);
});
//Más abajo
ajax.done(function(mensaje){
alert(mensaje);
});
//Y más abajo
ajax.done(function(mensaje){
alert(mensaje);
});
La diferencia sustancial es que, con las llamadas de retorno, se realizará la petición por cada vez que se invoque a la función, mientras que con el objeto diferido solo se realizará la petición una vez y se podrá acceder al mensaje de respuesta cada vez que queramos.