Запрос Ajax: не определено - PullRequest
0 голосов
/ 06 марта 2019

Здравствуйте, я хотел запросить API с ajax.API имеет простой json (что я и думал), теперь я настроил ajax-запрос в javascript, но я получаю неопределенную ошибку для переменных. Думаю, я знаю проблему, но пока не знаю ответа.

<script type="text/javascript">
document.getElementById("button").addEventListener('click', loadUsers);


// Load Github USers

function loadUsers(){
    var xhr = new XMLHttpRequest(); 
    xhr.open("GET", "dontKnowtheUrl", true);


    xhr.onload = function()
                {

                        if(this.status == 200){

                            var stats = JSON.parse(this.responseText)
                            var output = "";
                            for(var i in stats){
                                output += 
                                '<div class="user">' +
                                '<ul>' +
                                '<li>p_level: '+stats[i].p_level+'</li>'+
                                '<li>p_currentmmr: '+stats[i].p_currentmmr+'</li>' +
                                '</ul>' +
                                '</div>';
                            }
                            document.getElementById("users").innerHTML = output;
                        }

                }


                xhr.send();
}

Это была часть javascript, которую json-файл из API выглядит следующим образом

     {"results":
    [{"p_id":"test",
    "p_name":"test",
    "p_level":"test",
    "p_platform":"test",
    "p_user":"test",
    "p_currentmmr":"test",
    "p_currentrank":"test",
    "kd":"test"},
    {"p_id":"test",
    "p_name":"test",
    "p_level":"test",
    "p_platform":"test",
    "p_user":"test",
    "p_currentmmr":"test",
    "p_currentrank":"test",
    "kd":"test"}],
    "totalresults":2}

Я думаю, что json-файл не является обычным массивом, потому что он содержит «результаты»:и свойство "totalresults".Кто-нибудь знает, как это исправить, не попадая в файл JSON?

1 Ответ

0 голосов
/ 06 марта 2019

Вы будете хотеть перебирать stats.results, а не просто stats, см. Следующий пример:

function loadUsers(){
    var xhr = new XMLHttpRequest(); 
    xhr.open("GET", "dontKnowtheUrl", true);


    xhr.onload = function()
                {

                        if(this.status == 200){

                            var stats = JSON.parse(this.responseText)
                            var output = "";
                            for(var i in stats.results){
                                var row = stats.results[i];
                                output += 
                                '<div class="user">' +
                                '<ul>' +
                                '<li>p_level: '+row.p_level+'</li>'+
                                '<li>p_currentmmr: '+row.p_currentmmr+'</li>' +
                                '</ul>' +
                                '</div>';
                            }
                            document.getElementById("users").innerHTML = output;
                        }

                }


                xhr.send();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...