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.