Страницы

Поиск по вопросам

суббота, 8 февраля 2020 г.

Unexpected end of input

#jquery #javascript


Всем привет. Есть такой код:
var getChat = setInterval(function(){
    $.post("/chat.php?case=GetAll", function(data){
        if(data != "Error!"){
            var data = $.parseJSON(data);

            $("#messages").html('');
            for(var i in data){
                $("#messages").append('bla bla bla')
            }
        }else{
            alert(data);
        }
    });
    $("#messages").scrollTop($("#messages").get(0).scrollHeight);
}, 2000);

И вот он собственно после нескольких итераций (порядка 10-15) выбрасывает сабж, строку
указывает
var data = $.parseJSON(data);

После этого чат перестает обновляться. Тестирую на локалке, поэтому проблема явно
не в блокировке ip на сервере
Скрипт отдает 10-20 элементов массива
Такой бред только в Chrome пока замечен. Лечится закрытием вкладки и открытием новой    


Ответы

Ответ 1



У вас data — пустая JSON.parse(''); // SyntaxError: Unexpected end of input Добавьте проверку: data = data != "" ? $.parseJSON(data) : {};

Ответ 2



Я тут обнаружил решение проблемы, что мой код ожидал ответ с сервера, а сервак после отправки - молчал. Вот и выпадала ошибки что ожиданное окончание жсона fetch(url, { method: 'POST', body: JSON.stringify(json), headers: { 'Content-Type': 'application/json' } }) .then(res => res.json())// вот тут мой код и ожидает ответ из сервака .then((res) => { toastr.success('Created Type is sent successfully'); }) .catch(err => { console.log('Type send failed', err); toastr.warning('Type send failed'); })

Комментариев нет:

Отправить комментарий