JQuery: valeur de retour de demande ajax «undefined» dans la même fonction

J’ai ce morceau de code:

function CallAPI(paramSsortingng) { var returnVal; var jqxhr = $.get( "http://url/../" ) .success(function (data) { returnVal = data; }) .error(function (xhr, ajaxOptions, thrownError) { alert("Error!\n xhr.status = [" + xhr.status + "]\n xhr.statusText: [" + xhr.statusText + "]\najaxOptions = [" + ajaxOptions + "]"); }) .complete(function () { alert("Request complete."); }); alert("returnVal: [" + returnVal+ "]"); } 

Le “returnVal” de la dernière alerte est renvoyé sous la forme “indéfini”, mais lorsque je débogue avec Firebug, la réponse à la demande est “true” ou “false”. La valeur est renvoyée à partir de la demande sous forme de chaîne pure, pas de format spécifique (JSON, HTML, ..)

Pourquoi “returnVal” ne renvoie-t-il pas la valeur de réponse de la demande? Merci

Étant donné que vous l’utilisez en dehors de l’appel ajax et que, comme les appels ajax sont asynchrones, l’alerte apparaît plus rapidement que vous n’obtenez la réponse. Vous devez utiliser la variable returnVal dans le gestionnaire de success pour vous assurer d’obtenir la valeur renvoyée par la réponse.