Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ajax调用的返回值_Javascript_Jquery_Ajax - Fatal编程技术网

Javascript ajax调用的返回值

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',

我试图从ajax调用中获取返回bool,但是当我运行函数并保存到变量时,唯一得到的是未定义

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格式吗?请检查并验证

混淆你的代码数据,它只是“发布”而不是“获取”

您可以尝试getjsonajax,查看一个示例:

$(文档).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
函数中分配它。