@Dizzabel

Где ошибка или что я делаю не так?

Есть запрос JSON в виде url
var newArr = JSON.parse(req.responseText);
	}
	catch (e) {
		document.getElementById("PRVDATA").innerHTML = "Ошибка разбора ответа от сервера: " + e +"<br>" +req.responseText;
	}

Ответ приходит, но, в ответе есть двойные кавычки, от этого крашится ответ. Дописал на экранирование кавычек (и прочего), но почему-то не работает. Подскажите где я не прав?
function escapeHtmlChars(req) {
    return req
        .replace(/&/g, "&amp;")
        .replace(/</g, "&lt;")
        .replace(/>/g, "&gt;")
        .replace(/"/g, "&quot;")
        .replace(/'/g, "&#039;");
}
for (var i = 0; i < newArr.length; i++) {
    newArr[i].correct = escapeHtmlChars(newArr[i].correct);
    for (var j = 0; j < newArr[i].choices.length; j++) {
        newArr[i].choices[j] = escapeHtmlChars(newArr[i].choices[j]);
    }
}
  • Вопрос задан
  • 76 просмотров
Пригласить эксперта
Ответы на вопрос 1
Возможно вам в ответе пришёл не json, а какой-то другой текст. Например если вы не авторизированы, то некоторые сервисы могут перенаправить на страницу авторизации, и тогда парсер json умирает.
Попробуйте ещё вместо JSON.parse использовать fetch
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы