innerHTML from responseText: как заменить специальные символы? - PullRequest
0 голосов
/ 09 мая 2019

Я вызываю API AJAX, который возвращает предварительно отформатированную строку HTML, например:

"<table class=\"table\"><thead><tr><th rowspan=\"2\">Hor\u00e1rio <\/th><th colspan=\"2\">
...
</table>"

Итак, в моем коде JavaScript я просто хочу напечатать эту таблицу:

document.getElementById("container").innerHTML = this.responseText;

Но вместо этого показано так:

wrong html table

Обратите внимание, что здесь есть двойная кавычка, специальные символы некорректны, и такие теги, как th , не могут быть закрыты из-за этих символов обратной косой черты.

Как от этого избавиться и правильно показать таблицу? Есть ли какой-либо метод JavaScript, который делает это, или какой-то метод PHP? (Я тоже разработчик этого API)

obs: я не использую jquery;

1 Ответ

1 голос
/ 09 мая 2019

Похоже, что сервер кодирует строку как JSON, который добавляет все escape-коды., Поэтому попробуйте использовать JSON.parse().

document.getElementById("container").innerHTML = JSON.parse(this.responseText);
...