lee loong Ответов: 1

Localhost:59927 говорит неопределенно


Цитата:
Привет, ребята, у меня возникла такая проблема, что когда я ничего не делал на приборной панели в течение определенного периода времени, в то время как ajax извлекает данные из базы данных . это выдало бы мне ошибку, сказав, что localhost не определен. Вот код при выполнении ajax


код JavaScript
var marker1 = [];
var circle = [];


L.Circle.include({
    contains: function (latLng)
    {
        return this.getLatLng().distanceTo(latLng) < this.getRadius();
    }
});
$.ajax({
    type: "GET",
    url: 'http://localhost:59927//api//Values//FlagingDevice(WithoutParameters)',
    success: function (data, status, xhr)
    {
        for (var i = 0; i < data.Table.length; i++)
        {
            circle[i] = L.circle([data.Table[i].Latitude, data.Table[i].Longitude], 50, { color: '#DA2E2E', opacity: 2, fillColor: 'blue', fillOpacity: .3 }).addTo(map);
        }
    },
    error: function (xhr)
    {
        alert(xhr.responseText);
    }
});


function innerOne()
{
    
    $.ajax({
        type: "GET",
        url: 'http://localhost:59927//api//Values//FlagingDevice(WithoutParameters)',

        success: function (data, status, xhr)
        {
            for (var s = 0; s < marker1.length; s++)
            {
                map.removeLayer(marker1[s]);
            }

            for (var i = 0; i < data.Table.length; i++)
            {
                var value = i + 1;

                if (circle[i].contains(L.latLng([data.Table[i].Latitude, data.Table[i].Longitude])))
                {
                    var customPopup1 = 'Station: ' + data.Table[i].StationName;

                    var customOptions1 =
                    {
                        'maxWidth': '500',
                        'className': 'custom'
                    };

                    circle[i].bindPopup(customPopup1, customOptions1);
                    setTimeout(function () { innerOne(); }, 30000);
                }

                else
                {
                    marker1[i] = L.marker([data.Table[i].Latitude, data.Table[i].Longitude]).addTo(map);

                    var customPopup = 'Latitude: ' + data.Table[i].Latitude + '</br>Longitude: ' + data.Table[i].Longitude
                        + '</br>Station: ' + data.Table[i].StationName + ' </br>Box: ' + data.Table[i].Name + '</br>Timestamp: ' + data.Table[i].LocationSend + `<br/><a target='_blank' href='/Home/History?DeviceID=${value}' style='color: #000000'>Click Here For Location History</a><br/>`;

                    marker1[i].bindPopup(customPopup);
                    setTimeout(function () { innerOne(); }, 30000);
                }
            }
        },
        error: function (xhr)
        {
            alert(xhr.responseText);
        }
    });
}

Цитата:
ValuesController.в CS

        [HttpGet]
        [ScriptMethod(UseHttpGet = true)]
        [Route("api/Values/FlagingDevice(WithoutParameters)")]
        public DataSet FlagingDevice1()
        {
            DataSet ds = dblayer.FlagingDeviceWithoutParameters();
            return ds;
        }
    }
}


Цитата:
дБ.в CS


public DataSet FlagingDeviceWithoutParameters()
  {
      SqlCommand com = new SqlCommand("FlagingDevice(Without Parameters)", con);
      com.CommandType = CommandType.StoredProcedure;
      SqlDataAdapter da = new SqlDataAdapter(com);
      DataSet ds = new DataSet();
      da.Fill(ds);
      return ds;
  }

Цитата:
ответ

<imei>351246879634268</imei>
<DeviceImei>351246879634268</DeviceImei>
<Latitude>1.321602 </Latitude>
<Longitude>103.860449</Longitude>
<Distance>0</Distance>
<LocationSend>2018-10-26T12:00:00+08:00</LocationSend>
<StationName>Maha Bodhi School</StationName>
<DivisionName>Ang Mo Kio GRC</DivisionName>
<GAROName>Amanda Sam</GAROName>
<BoxName>8</BoxName>


Что я уже пробовал:

Я попытался переключить интервал на тайм-аут, так как интервал создает кучу ajax-запросов, а тайм-аут создается только один раз после определенного периода времени.

Prilvesh K

Вот как я обычно проверяю :

Вы можете выполнить отладку, проверив, работает ли ваш сервер и работает ли он на правильном порту 59927, перейдя по этой ссылке непосредственно из вашего веб-браузера http://localhost:59927

Затем проверьте, выполняете ли вы запрос get к правильному маршруту api
http://localhost:59927//api//Values//FlagingDevice

Затем проверьте, какой сырой ответ он вам дает и правильно ли вы его анализируете .

Скорее всего, это один из вышеперечисленных вопросов .

lee loong

Я проверил те вопросы, которые вы изложили, и все правильно. Вы также можете проверить контроллер с помощью запроса get для извлечения данных из базы данных

1 Ответов

Рейтинг:
2

Bohdan Stupak

Вам определенно не нужны двойные косые черты в вашем вызове ajax
Воспользуйся
http://localhost:59927/api/Values/FlagingDevice(без параметров)
Вместо
http://localhost:59927//api//Values//FlagingDevice(без параметров)