Я использую ajax для извлечения некоторых данных из серверной части.Я получаю результат как json.
Затем я использую jquery, чтобы добавить его на страницу:
$(...).append('<H3>' + data.title + '</H3>')
И я только что понял, что данные json не экранированы HTML, что плохо.
Что мне делать?
- HTML экранировать все данные, возвращаемые из бэкэнда в json?
- Все ли экранируются на внешнем интерфейсе при конкатенации строк?(т.е. обернуть все внешние данные в экранирующую функцию)
Вариант 1 означает, что данные в json на самом деле не «правильные», они полезны для HTML, но не содержат реальных данных.И что еще хуже, это означает, что я не могу просто использовать json_encode () - мне сначала нужно пройтись по данным массива и избежать всего.
Вариант 2 кажется более сложным, и я беспокоюсь, что могу пропуститьместо.С другой стороны, это то, что вы делаете, когда получаете данные из SQL и собираете их в PHP, так что, я думаю, я к этому привык.
Пожалуйста, не предлагайте:
$(...).append($('<H3></H3>').text(data.title))
Этометод написания становится громоздким, когда у вас есть много уровней вложенных тегов.Мне нравится писать HTML, а не DOM-вызовы.
PS.Я знаю, что мне нужна библиотека шаблонов Javascript, но сейчас мне нужно сделать это с конкатенацией строк.