2017-08-29 54 views
0

我想從郵編獲取城市名稱。 我開始用GeoNames example實現它,但是我遇到了一些錯誤。我設法「工作」(它發送請求和響應選項卡中我看到了正確的反應,但我不能達到它Javascript:undefined當我想得到迴應

我的片段是:

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)我:

對象{readyState的:1,getResponseHeader:getResponseHeader(),getAllResponseHeaders:getAllResponseHeaders(),setRequestHeader:setRequestHeader(),overrideMimeType:overrideMimeType(),的StatusCode:的StatusCode(),中止:中止(),狀態:state(),always:always(),catch:catch(),...

如果我點擊更多,我看到響應是在responseText中。

console.log(response)的輸出「未定義」

如何得到的迴應?我錯過了什麼?

+3

'$ .getJSON()'是一個**異步** API。 – Pointy

+0

你能否更多地瞭解一下asynchoronous API以及使用什麼? – Feralheart

+0

@Feralheart https://developers.google.com/web/fundamentals/getting-started/primers/promises –

回答

1

請找到樣品。 getJson是異步調用,請在成功回調中編寫邏輯,如下所示。

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

請參閱http://api.jquery.com/jquery.getjson/更多 理解。