Para crear una variable global en javascript debemos de escribir:
window.miVariable = miVariable;
¿Un ejemplo?
Tenemos una llamada ajax y queremos utilizar el objeto que nos devuelve la propiedad success: fuera de esta.
$.ajax({ url: "http://ejemplo.com/servicio.php", type: "POST", dataType: "json", data: {var1: "value1" ,var2: "value2"}, success: function (returnInfo) { console.log(returnInfo); }, error: function (errorResponse) { console.log(errorResponse); } }); // Recordad que también podemos hacer las llamadas con los callbacks '.done', '.fail'... $.ajax({ url: "http://ejemplo.com/servicio.php", type: "POST", dataType: "json", data: {var1: "value1" ,var2: "value2"} }).done(function(returnInfo) { console.log(returnInfo) }).fail(function(errorResponse) { console.log(errorResponse); });
Si intentamos utilizar el objeto returnInfo fuera de la propiedad success nos devolvería un error tipo:
Uncaught ReferenceError: returnInfo is not defined
$.ajax({ url: "http://ejemplo.com/servicio.php", type: "POST", dataType: "json", data: {var1: "value1" ,var2: "value2"}, success: function (returnInfo) { // Guardamos la variable en el objeto window. window.returnInfo = returnInfo; }, error: function (errorResponse) { console.log(errorResponse); } });
Ahora ya podemos usarla fuera de la función success
🙂