0
私は以下のjavascriptコードを使用していますが、これは特定の場所のジオイドを返します。私は、CORSプラグインを使用してChromiumブラウザでテストしました。それはIDを取得しますが、私は関数の外から値に到達することができません。javascript関数内でresponseXML値を返すことができません
私はjavascriptを使いましたが、私はそれらを読んでlink1、link2と私の質問を投稿する前に検索しました。ここで
は、私が何をしないのですfiddle
のですか?
編集:司会者のおかげで、私の質問は正しい道にリダイレクトされました。 どうすれば非同期呼び出しをバイパスするようにコードを修正できますか?
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (xhttp.readyState == 4 && xhttp.status == 200) {
myFunction(xhttp);
}
};
var mylocation = 'istanbul'
xhttp.open("GET", "http://api.geonames.org/search?q= + mylocation + &username=kennsully", true);
xhttp.send();
function myFunction(arg) {
var xmlDoc = arg.responseXML;
var geoid = xmlDoc.getElementsByTagName("geonameId")[1].childNodes[0].nodeValue;
// document.write(geoid); // when uncommented it prints the id 891501
// console.log(geoid);
return geoid;
};
var geoid = myFunction();
console.log(geoid);// <= Uncaught TypeError: Cannot read property 'responseXML' of undefined
at myFunction
、私はそれを試してみましたが、何もに、パス 'responseText' また – kenn
を変更していないあなたの " myFunction '関数です。私は私の答えを更新しました。 –