Uncaught DOMException: не удалось выполнить «send» для «XMLHttpRequest»: состояние объекта должно быть ОТКРЫТО - PullRequest
0 голосов
/ 15 апреля 2020

Я создаю систему, которая отслеживает местоположение автомобилей и выводит их на карты Google. Единственная проблема, которая у меня есть сейчас, заключается в том, что я не могу автоматически каждые 100 секунд делать c refre sh с моим кодом, который обновляет трекеры на картах при движении автомобиля. Я думаю, что мой код для автоматического c refre sh правильный, потому что он всегда показывает ошибку каждые 5 секунд, и я не могу выяснить проблему с кодом отправки, который у меня есть для доступа к ajax

// Initialize Google Map
function initMap()
{
    map = new google.maps.Map(document.getElementById('map'),
    {
        zoom: 7, 
        center: 
        {
            lat: 16.3242858, 
            lng: 121.5125254}, 
            mapTypeId: 'roadmap'
        }
    );
}
var truck = [18055,18056,19364,19365,19366,19367,19368,19369,19370,19371,19774,19780,19787,19989,19990,19991,19992,19993,20244,20245,20411,20893,20895,20896,20898,20899,20900,20901,20902,20904,20905,20906,20907,20908,20915,20916,20918,20919,20920,20921,20922,20923,20925,20930,20934,20949,21364,21945,21955,21974,22006,22031,22166,22202,22206,22213,22286];
window
// Initialize AJAX/AJAJ for GPS TRACKER API
var request = new XMLHttpRequest();
url = 'url=['+ truck +']';
request.open('GET', url, true);
request.send();

// json data in here
request.onload = function()
{
    if(request.status != 200)
    {
        // HTTP error?
        // Handle error Here
        alert( 'Error: ' + request.status);
        return;
    }
    var tracker = JSON.parse(request.responseText);
    var infowindow = new google.maps.InfoWindow();
    var i,marker;

    for (i = 0; i < truck.length; i++)
    {  
        marker = new google.maps.Marker({
            position: new google.maps.LatLng(parseFloat(tracker.states[truck[i]].gps.location.lat), parseFloat(tracker.states[truck[i]].gps.location.lng)),
            map: map
        });

        google.maps.event.addListener(marker, 'click', (function(marker, i) {
            return function() {
              infowindow.setContent(truck[i].toString()+"<br> sample");
              infowindow.open(map, marker);
            }
          })(marker, i));
    }
};

setInterval(function()
{
    request.onreadystatechange = function() 
    {
        if (request.readyState === 4)
        {
            /* do some thing*/
            tracker = JSON.parse(request.responseText);
            infowindow = new google.maps.InfoWindow()

            for (i = 0; i < truck.length; i++)
            {  
                marker = new google.maps.Marker({
                    position: new google.maps.LatLng(parseFloat(tracker.states[truck[i]].gps.location.lat), parseFloat(tracker.states[truck[i]].gps.location.lng)),
                    map: map
                });

                google.maps.event.addListener(marker, 'click', (function(marker, i) {
                    return function() {
                    infowindow.setContent(truck[i].toString()+"<br> sample");
                    infowindow.open(map, marker);
                    }
                })(marker, i));
            }
        }
    };
    request.send(); //it shows the error here
}, 5000);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...