Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 11.03.2015, 14:47
Аватар для Armen
Кандидат Javascript-наук
Отправить личное сообщение для Armen Посмотреть профиль Найти все сообщения от Armen
 
Регистрация: 28.06.2009
Сообщений: 120

Как раскодировать строку которая приходит с сервера?
Здравствуйте, подскажите пожалуйста.
На сервере, как и на клиенте стоит проверка, что если пользователь вводит html теги, то их нужно кодировать, функция выглядит таким образом:
var encodeHtmlEntities = function (str) {
    return String(str)
        .replace(/&/g, '&')
        .replace(/</g, '&lt;')
        .replace(/>/g, '&gt;')
        .replace(/"/g, '&quot;')
        .replace(/'/g, '&apos;')
        .replace(/\\/g, '&bsol;')
        .replace(/\//g, '&sol;');
};

Проблема в том, что сервер так же кодирует сообщения перед тем, как их отправить, то есть мне приходит уже вот такая строка:
&lt;script&gt;alert(1)&lt;&sol;script&gt;

И если я ее вставлю в ui то она в таком виде и будет. А мне нужно сделать так, чтоб она в ui выглядела вот так
<script>alert(1)</script>

Я так понимаю, что мне ее нужно сначала раскодировать, а потом снова закодировать и вставить в ui?
Вопрос: должна выглядеть функция раскодирования?
Спасибо за помощь и ваше время.
Ответить с цитированием
  #2 (permalink)  
Старый 11.03.2015, 14:59
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,589

Вставлять надо не как текст а как html, очевидно.
Да и кодировать проще через текст ноду.

НО. Даже если вы совсем не понимаете, что и как делаете(из вопроса очевидно), элементарная логика должна бы подсказать, что чтобы раскодировать закодированное можно применить ту же самую функцию просто поменяв местами текст между // и между ''.
__________________
29375, 35
Ответить с цитированием
  #3 (permalink)  
Старый 11.03.2015, 15:10
Аватар для Armen
Кандидат Javascript-наук
Отправить личное сообщение для Armen Посмотреть профиль Найти все сообщения от Armen
 
Регистрация: 28.06.2009
Сообщений: 120

Сообщение от Aetae Посмотреть сообщение
Вставлять надо не как текст а как html, очевидно.
Да и кодировать проще через текст ноду.

НО. Даже если вы совсем не понимаете, что и как делаете(из вопроса очевидно), элементарная логика должна бы подсказать, что чтобы раскодировать закодированное можно применить ту же самую функцию просто поменяв местами текст между // и между ''.
а можно пример функции, которая раскодирует?
Ответить с цитированием
  #4 (permalink)  
Старый 11.03.2015, 15:48
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

На сервере, как и на клиенте стоит проверка, что если пользователь вводит html теги

Это не кодирование, а преобразует в HTML-сущности, и если после этого вы делаете обратное, то зачем пропускаете полученное от клиента через htmlspecialchars?

Последний раз редактировалось laimas, 11.03.2015 в 15:51.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Решение проблемы кодировок для AJAX и PHP без iconv (cp1251 в AJAX) Serge Ageyev AJAX и COMET 10 24.04.2013 20:48
Динамическое создание iframe в Firefox mrbean11 Firefox/Mozilla 8 02.11.2012 21:23
как раскодировать? mops Серверные языки и технологии 10 14.08.2012 15:16
исползоват строку как имя масива dadli Общие вопросы Javascript 5 18.05.2012 14:35
[Closure Compiler] Как запретить инлайнить функцию, которая вызывается из setTimeout? xintrea Events/DOM/Window 4 11.02.2011 16:23