Javascript: undefined 当我想得到响应

Javascript: undefined when I want to get the response

我想从邮政编码中获取城市名称。 我开始用 GeoNames example 来实现它,但我遇到了一些错误。我设法 "work"(它发送了请求,在响应选项卡上我看到了正确的响应,但我无法访问它。

我的代码片段是:

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: always(), catch: catch(),...

如果我点击更多,我会看到响应在 responseText 中。

console.log(response) 的输出是 'undefined'

如何得到响应?我错过了什么?

请查找样本。 getJson是异步调用,请在成功回调中编写你的逻辑,如下所示。

$.getJSON(request, function(result){
           //success logic
           console.log(result);
           //response = aObj.responseText;
            //console.log(response);
        });

Kindly refer http://api.jquery.com/jquery.getjson/ for more understanding.