Javascript:当我想获得响应时未定义
Posted
技术标签:
【中文标题】Javascript:当我想获得响应时未定义【英文标题】:Javascript: undefined when I want to get the response 【发布时间】:2018-02-07 03:43:49 【问题描述】:我想从邮政编码中获取城市名称。 我开始使用GeoNames example 来实现它,但是我遇到了一些错误。我设法“工作”(它发送请求并在响应选项卡上我看到正确的响应,但我无法访问它。
我的 sn-p 是:
var countrycode = document.getElementById("countrySelect").value;
var postalcode = document.getElementById("postalcodeInput").value;
request = 'http://api.geonames.org/postalCodeLookupJSON?postalcode=' + postalcode + '&country=' + countrycode + '&callback=getLocation&username=myUname';
// Create a new script object
aObj = jQuery.getJSON(request)
console.log(aObj);
response = aObj.responseText;
console.log(response);
从console.log(aObj)
我得到:
Object readyState: 1, getResponseHeader: getResponseHeader(), getAllResponseHeaders: getAllResponseHeaders(), setRequestHeader: setRequestHeader(), overrideMimeType: overrideMimeType(), statusCode: statusCode(), abort: abort(), state: state() , 总是: always(), catch: catch(),...
如果我点击更多,我会看到响应在 responseText 中。
console.log(response)
的输出是 'undefined'
如何获得响应?我错过了什么?
【问题讨论】:
$.getJSON()
是一个异步 API。
您能多谈谈异步 API 以及改用什么吗?
@Feralheart developers.google.com/web/fundamentals/getting-started/primers/…
How do I return the response from an asynchronous call?的可能重复
【参考方案1】:
请查找示例。 getJson 是异步调用,请在成功回调中写下你的逻辑,如下所示。
$.getJSON(request, function(result)
//success logic
console.log(result);
//response = aObj.responseText;
//console.log(response);
);
请参考http://api.jquery.com/jquery.getjson/ 了解更多 理解。
【讨论】:
以上是关于Javascript:当我想获得响应时未定义的主要内容,如果未能解决你的问题,请参考以下文章
使用React Native Fetch中的对象响应时未处理的Promise Rejection
运行 Jest 测试时未定义`regeneratorRuntime`