Задать вопрос
@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]);
    }
}
  • Вопрос задан
  • 77 просмотров
Подписаться 1 Простой 4 комментария
Пригласить эксперта
Ответы на вопрос 1
Возможно вам в ответе пришёл не json, а какой-то другой текст. Например если вы не авторизированы, то некоторые сервисы могут перенаправить на страницу авторизации, и тогда парсер json умирает.
Попробуйте ещё вместо JSON.parse использовать fetch
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
Goodt Екатеринбург
от 100 000 до 150 000 ₽
Data World Москва
от 180 000 до 210 000 ₽
Selecty Москва
До 350 000 ₽