我在ajax调用后无法获取返回值。我可以看到正在返回值但是当我执行console.log()时它显示未定义。我的方法有问题吗。
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) }
}
答案 0 :(得分:-1)
您的ajax调用需要一些时间来检索这些值。您无法将值直接传递给变量。在ajax成功函数中编写代码。即ajax请求函数中的console.log()。这将遵循ajax调用引起的延迟。试试这个链接https://api.jquery.com/jQuery.ajax/#jQuery-ajax-settings在这里检查async属性并进行实验。