L'unico modo che ho trovato per rendere globali delle variabili ottenute con Ajax è inserirle in campi input nascosti e recuperarle all'occorrenza. Soluzione poco elegante e macchinosa, non linciatemi.
Scusate eventuali errori, ho scritto di getto questo esempio.
Ciao
codice:
function DataCall(){
 $.ajax({
 type: "POST",
 url: "il mio url",
 data: "i miei dati",
 dataType: "html",
 success: function(data){
   MyData(data);
   return data;
 },
  error: function() {
            alert('errore');
 }
});
}


function MyData(data){
 var data = jQuery.parseJSON(data);
 var nome = (data.nome);
 var cognome = (data.cognome);
 $('#nome').val(nome);
 $('#cognome').val(cognome);
 
 Recupera();
 
};


function Recupera(){
 //riprendo i miei dati e li inserisco in variabili globali
 nome = document.getElementById('nome').value;
 cognome = document.getElementById('cognome').value;
};



function(){
 //utilizzo i miei dati dove voglio
 $('<div>Nome: '+nome+' Cognome: '+cognome+'</div>').dialog();
 
 // e se voglio li aggiorno
 $.ajax({
 type: "POST",
 url: "il mio url",
 data: "nome="+nome+"&cognome="+cognome,
 dataType: "html",
 success: function(){
  //richiamo i miei dati aggiornati
  DataCall();
 },
  error: function() {
            alert('errore');
 }
});
 
}