Javascript ajax调用的返回值
我试图从ajax调用中获取返回bool,但是当我运行函数并保存到变量时,唯一得到的是未定义Javascript ajax调用的返回值,javascript,jquery,ajax,Javascript,Jquery,Ajax,我试图从ajax调用中获取返回bool,但是当我运行函数并保存到变量时,唯一得到的是未定义 function check(number, id){ $.ajax({ url: 'ai.php', data: { "func":"checkNumber", "id":id, "number":number }, method: 'GET',
function check(number, id){
$.ajax({
url: 'ai.php',
data: {
"func":"checkNumber",
"id":id,
"number":number
},
method: 'GET',
dataType: 'json'
}).done(function(jData) {
return jData['idFound'];
}).fail(function(jData) {
console.log(jData['idFound']);
});
}
var test = check(44444, 12);
console.log(test);
// true
// but i get an undefined value in the console.log
Depend ur file'ai.php'是json格式吗?请检查并验证 混淆你的代码数据,它只是“发布”而不是“获取” 您可以尝试getjson或ajax,查看一个示例:
$(文档).ready(函数(){
$.getJSON('http://beta.json-generator.com/api/json/get/NkmG8_zBZ,函数(json){
对于(x=0;x而言,如果不进一步使用代码,这对我来说似乎是一个异步问题
此行调用异步函数:
var test = check(44444, 12);
但之后立即记录结果将是未定义的,因为除非在“done”回调函数中,否则无法保证返回值
默认的JQuery AJAX行为是异步的,但是如果您确实需要它是同步的,您可以显式地设置该选项,尽管这不是一个好的实践:
$.ajax({
async: false,
...
});
尝试console.log(jData.data['idFound']);
是否确定属性idFound
存在于结果jData
中?也许您可以提供有关结果的更多信息。jData.data['idFound']返回bool。如果我使用console.log(jData.data['idFound'])它将写入boolYou无法从异步函数接收同步结果。您只能在done
或fail
部分调用依赖于结果的回调。是否可以返回jData.data['idFound']函数检查中的值?如果我从“完成”返回值,我仍然会得到未定义的值…但是它可以从“完成”中获取值。是否尝试了注释中提出的建议:console.log(jData.data['idFound');
如果我从console.log(jData.data['idFound'));然后它将要存储在变量中的值写入。我无法确切地说出您在说什么。如果您console.log(jData.data['idFound'])
在done
函数中,您是否得到了预期的结果?如果您需要将其存储在变量中,则必须在此函数之外定义它,并在done
函数中分配它。