Использование значения jqXHR.ResponseHeader в качестве переменной для общего количества страниц - PullRequest
0 голосов
/ 29 января 2020

Я подключаюсь к REST API, чтобы использовать таблицу данных в инструменте бизнес-аналитики. API имеет 100 записей на страницу, но у меня есть неизвестное количество страниц для этого до l oop через. Если я вручную определю «totalpages = 10», то он будет успешно пропущен через 10 страниц и получит ожидаемые результаты.

Я хочу получить заголовок ответа HTTP «X-Total-Pages», чтобы определить текущее количество общих страниц (общее количество страниц меняется ежечасно). Я пытаюсь определить totalpages = jqXHR.getResponseHeader ('X-Total-Pages'), как показано ниже, но он возвращает только 1 страницу данных VS, если я укажу totalpages = 10, он вернет данные на 10 страниц.

Если у кого-то есть понимание или я вижу, где я иду не так, я был бы признателен за помощь. Спасибо!

$.ajaxSetup({
        headers : {
        'Accept' : 'application/vnd.whatever.v2.1+json',
        'X-Whatever-Authorization' : 'Bearer 0123456789ABCDEF',
        'Content-Type' : 'application/json',
        'dataType' : 'json'
        }
    });

        var PageNo = 1;
        var tableData = [];
        var totalpages = null;

    do {
        $.ajax({
            type: 'GET',
            url: "http://whatever.com/whatever.json&page=" + PageNo, 
            success: function(incident, status, jqXHR) {        

        totalpages  = jqXHR.getResponseHeader('X-Total-Pages');

        for (var i = 0, len = incident.length; i < len; i++) {
            tableData.push({
                "id": incident[i].id,
                "number": incident[i].number,
                "description": incident[i].description_no_html,
                "state": incident[i].state,
            })
        }

        table.appendRows(tableData); 
        }
        })

        PageNo++ 
    } 
        while (PageNo <= totalpages)
        doneCallback();
...