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