NetworkError: не удалось выполнить 'send' для 'XMLHttpRequest': не удалось загрузить '': документ уже отсоединен - PullRequest
0 голосов
/ 25 февраля 2020

Я перебираю массив для отправки запроса в API для получения координат широты и длины, но возвращаю только одну координату широты и долготы, а затем получаю эту ошибку

NetworkError: Failed выполнить 'send' для 'XMLHttpRequest': не удалось загрузить '': документ уже отсоединен.

Я использую код

function GetEachUsersLatLongCoordinates(zips) {
    return (TryCatch(function () {
        let result;
        let results = [];

        let xmlHttp = new XMLHttpRequest();

        for (let i = 0; i < zips.length; i++) {
            xmlHttp.onreadystatechange = function () {
                if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
                    result = JSON.parse(xmlHttp.response);
                    results.push(result.results[0].geometry.location);
                }
            }
            xmlHttp.open("GET", "https://maps.googleapis.com/maps/api/geocode/json?address=" + parseInt(zips[i]) + "&key=" + GoogleAPIKEY + "", true);
            xmlHttp.send(null);            
        }        

        return results;
    }));
}

1 Ответ

0 голосов
/ 25 февраля 2020

Поместите:

let xmlHttp = new XMLHttpRequest();

Внутри l oop.

И вы не сможете вернуть результат, так как он работает асинхронно c. Вы можете передать обратный вызов GetEachUsersLatLongCoordinates или вернуть обещание.

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