0
JSONファイルの特定の要素を外部REST APIから、JSコードで使用できるローカル辞書変数に書き込もうとしています。私のAJAX GETリクエストは正常に動作しますが、変数をAJAXリクエストの外側に出力すると、コード外で取得したデータにアクセスできないようです。私はこの仕事をするためにコールバック関数を使う必要があることを知っていますが、私はそれを正しく行うようには思えません。これは、私がコールバック関数を使用する前にどのように見えるかです:ajax GETリクエストで動作するコールバック関数を取得できません
<script>
var LeagueTable = []
$.ajax({
url: 'http://api.football-data.org/v1/competitions/445/leagueTable/?',
headers: {
'X-Auth-Token':''
},
method: 'GET',
dataType: 'json',
success: function(data) {
console.log(data)
for (i = 0; i < 20; i++) {
LeagueTable[data.standing[i].teamName] = data.standing[i].position
}
}
});
// LeagueTableAppend(LeagueTable)
console.log(LeagueTable["Watford FC"])
</script>
をしかし、辞書がAJAXリクエストの外に追加されていないので、私は、コールバック関数でこれを変更しようとしたが、私はどのように本当にわからないんだけどそれらを実装する。 LeagueTableディクショナリにforループで追加された値を保持したいだけでした。そして、これは私のコールバック関数の使用を試みたものですが、うまくいきません。
<script>
var LeagueTable = []
function getdata(){
$.ajax({
url: 'http://api.football-data.org/v1/competitions/445/leagueTable/?',
headers: {
'X-Auth-Token':''
},
method: 'GET',
dataType: 'json',
success: handleData
});
}
function handleData(data){
// console.log('success: '+ JSON.stringify(data));
for (i = 0; i < 20; i++) {
LeagueTable[data.standing[i].teamName] = data.standing[i].position
// console.log(JSON.stringify(data.standing[i].teamName) + ':' + data.standing[i].position);
}
}
getdata(handleData)
// LeagueTableAppend(LeagueTable)
console.log(LeagueTable["Watford FC"])
</script>
これは時代の古い物語です。たとえば、[here](https:// stackoverflow。)などの[こちら](https://stackoverflow.com/questions/10652887/is-it-posible-to-use-ajax-respone-outside-of-it)を参照してください。 com/questions/21052258/passing-data-outside-ajax-call-jquery)... – dhilt