Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.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获取类型返回null_Javascript_Jquery_Html_Ajax - Fatal编程技术网

Javascript 成功数据从AJAX获取类型返回null

Javascript 成功数据从AJAX获取类型返回null,javascript,jquery,html,ajax,Javascript,Jquery,Html,Ajax,我正在使用以下代码将成功数据放入变量: var compdet = null; $.ajax({ url: uri2 + "/" + $("#textbox_id").val(), type: "GET", cache: false, success: function (data) { compdet = data; } }); 为了检查我的var compdet

我正在使用以下代码将
成功数据
放入
变量

    var compdet = null;

    $.ajax({
        url: uri2 + "/" + $("#textbox_id").val(),
        type: "GET",
        cache: false,
        success: function (data) {
            compdet = data;
        }
    });
为了检查我的
var compdet
是否有价值,我添加了:

    console.log(compdet);
遗憾的是,它只返回
null
。因此,我尝试将
控制台.log
放入

    success: function (data) { console.log(data); }
它返回我想要看到的输出。谁能给我解释一下

我在这里意识到了一些事情。实际上,您可以进行
Javascript
函数
async
等待AJAX
调用

例如:

async function func_name() {

    await $.ajax({
        // some codes here
    });

}
JavaScript的执行非常简单。如果在AJAX之后有任何代码,它可能会在完成AJAX之前执行。这就是为什么会得到值
null

在这个场景中,您可以在
success()
回调中执行下一个代码块,或者调用另一个方法来执行下一个代码块

方法调用的示例:

function next(compdet) {
    // code stuff
}

$.ajax({
    url: uri2 + "/" + $("#textbox_id").val(),
    type: "GET",
    cache: false,
    success: function (data) {
        next(data)
    }
});

查看之间的区别。

您将
console.log(compdet)放在了什么地方
@KrishnaPrashatt在
$.ajax({})之后行您的ajax本质上是异步的。有关如何继续的更多信息,请参阅链接的dupe。您可以分配ajax的响应,即在ajax之后和ajax范围内的数据。还可以在分配后在ajax代码中使用控制台compdet变量,因为javascript在使用http请求时是异步的。它没有等待任何http请求响应。您在函数callYes的参数中有一个输入错误,已更正。谢谢。@MH2K9,如果我使用
函数next(compdet){console.log}
它会正确输出。但是,如果我将
compdet
放入一个
全局变量
,我仍然会得到null。由于AJAX的异步特性,您会得到null。难道
next()
还不够吗?