/ / Prečo sa vrátiť nefunguje po tom, ako Ajax zavolá jquery? [duplicitné] - javascript, jquery, ajax

Prečo vrátiť nefunguje po jquery Ajax hovor? [kopírovať] - ajax, javascript, jquery

Nemôžem získať vrátenú hodnotu po zavolaní ajax. Vidím, že hodnoty sa vrátia, ale keď to urobím, konsole.log () to nedefinuje. Je v mojom prístupe niečo zlé.

var base_path = "http://localhost/lab/theapp/api/";

$(function() {
var url = base_path + "tasks";
var type = "post";
var data = "";
var get = submit_me(type,data,url);
console.log(get);
});


function submit_me(type,data,url) {
try {
$.ajax({
url: url,
type: type,
data: data,
dataType: "json",
beforeSend: function (request) {
request.setRequestHeader("X-CSRF-Token", $.cookie("token"));
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
//alert("page_login_submit - failed to login");
console.log(JSON.stringify(XMLHttpRequest));
console.log(JSON.stringify(textStatus));
console.log(JSON.stringify(errorThrown));
},
success: function (r) {
if (r.sessid){
var sessid = r.sessid;
var session_name = r.session_name;
var token = r.token;
jQuery.cookie("token", token);
return r;
}
}
});
}
catch (error) { console.log(error) }
}

odpovede:

-1 pre odpoveď č. 1

Váš hovor ajax potrebuje nejaký čas na načítaniehodnoty. Hodnotu nemôžete preniesť priamo na premennú. Napíšte kód v funkcii úspechu ajax. tj. console.log () v funkcii ajax request. To bude mať za následok oneskorenie spôsobené hovorom ajax. Vyskúšajte tento odkaz https://api.jquery.com/jQuery.ajax/#jQuery-ajax-settings Skontrolujte atribút async a experimentujte.