Javascript 无法打印get请求返回的JSON对象的属性 var apikey=“someKey”; var SEid=“0137454dfgsdfgsdfgzxv4435099:pnqp_fvtmsy”; var query=“Flower”; var返回数据; $.get(”https://www.googleapis.com/customsearch/v1?key=“+apikey+”&cx=“+SEid+”&q=“+查询,函数(数据){ 控制台日志(数据); 返回数据=数据; }); console.log(returnedData.items[1].formattedUrl);

Javascript 无法打印get请求返回的JSON对象的属性 var apikey=“someKey”; var SEid=“0137454dfgsdfgsdfgzxv4435099:pnqp_fvtmsy”; var query=“Flower”; var返回数据; $.get(”https://www.googleapis.com/customsearch/v1?key=“+apikey+”&cx=“+SEid+”&q=“+查询,函数(数据){ 控制台日志(数据); 返回数据=数据; }); console.log(returnedData.items[1].formattedUrl);,javascript,json,Javascript,Json,我不断返回错误UncaughtTypeError:无法读取未定义的属性'items' 但是我不明白为什么返回数据的变量是未定义的。在调用get请求之前,我甚至都不会尝试引用它 请不要将此问题标记为无效,我确实在尝试解决此问题,并且在过去2天中尝试了各种方法,但我就是无法解决此问题。使用returnedData.toJSON().items或只是returnedData.get(items.get)(0)直接。异步运行$.get——脚本到达该行后,它只发送请求,而不等待请求完成后再继续 不能返回异

我不断返回错误UncaughtTypeError:无法读取未定义的属性'items'

但是我不明白为什么返回数据的变量是未定义的。在调用get请求之前,我甚至都不会尝试引用它


请不要将此问题标记为无效,我确实在尝试解决此问题,并且在过去2天中尝试了各种方法,但我就是无法解决此问题。

使用
returnedData.toJSON().items
或只是
returnedData.get(items.get)(0)
直接。

异步运行
$.get
——脚本到达该行后,它只发送请求,而不等待请求完成后再继续


不能返回异步生成的值。但是,您可以返回一个承诺,该承诺在解析时会解析为所需的值。

可能不应该共享apikey@brandenM
$.get
发出一个异步调用,这意味着我们永远不知道响应何时返回&
js
不会等待它。因此
console.log(returnedData.items[1].formattedUrl)将被执行,而不是等待结果。当它执行时,
returnedData
未定义,因为到目前为止,
$没有响应。get
调用。请检查副本。问题和解决方案已在此处明确定义。希望它将有用运行
console.log(returnedData.items[1].formattedUrl)在定义它之后,在花括号内,我打赌你会看到它。是的,但是我以后如何访问它,或者将它放入全局变量中?@brandenM就像我说的,返回一个与所需值解析的承诺。
<script>

        var apikey = "someKey";
        var SEid = "0137454dfgsdfgsdfgzxv4435099:pnqp_fvtmsy";
        var query = "Flower";
        var returnedData;

        $.get("https://www.googleapis.com/customsearch/v1?key=" + apikey + "&cx=" + SEid + "&q=" + query, function(data){

        console.log(data);
        returnedData = data;
        });

        console.log(returnedData.items[1].formattedUrl);
        </script>