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);
我不断返回错误UncaughtTypeError:无法读取未定义的属性'items' 但是我不明白为什么返回数据的变量是未定义的。在调用get请求之前,我甚至都不会尝试引用它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——脚本到达该行后,它只发送请求,而不等待请求完成后再继续 不能返回异
请不要将此问题标记为无效,我确实在尝试解决此问题,并且在过去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>