#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'); })
Комментариев нет:
Отправить комментарий