Как закодировать все данные ответа html, а затем декодировать его через JS? - PullRequest
0 голосов
/ 28 апреля 2011

Я хотел бы закодировать все данные, выбираемые с помощью запроса ajax (поэтому данные должны быть закодированы на стороне сервера), а затем, как только данные будут получены клиентом, они будут декодированы через JS, а затем обработаны как читаемые Данные HTML.

Я использую PHP для рендеринга данных на сервере. Какой самый эффективный, быстрый и простой способ?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 28 апреля 2011

Связь с PHP через JSON, с json_encode() и json_decode().

0 голосов
/ 28 апреля 2011

Вы не пытаетесь заново изобрести HTTP-запрос / ответ?если это так, отключите AJAX и просто запросите страницу.

Если, однако, вы просто пытаетесь загрузить «некоторый» контент HTML для выгрузки в контейнер на странице, тогда в jQuery есть простой метод, называемый .load()

http://api.jquery.com/load

Обновление: на основе обсуждения в комментариях, здесь небезопасно quick-n- грязная техника запутывания между PHP на сервере и JS на клиенте с использованием ROT13 .

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

<?php
  function rot13($s){
    return !$s ? "" : strtr($s,
      "NnOoPpQqRrSsTtUuVvWwXxYyZzAaBbCcDdEeFfGgHhIiJjKkLlMm",
      "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz");
  }
  //encode the HTML content
  $encodedStr = rot13($originalHTML);
?>

Затем, после отправки в браузер, декодируйте его в JavaScript:

String.prototype.rot13 = function(){
  return this.replace(/[a-zA-Z]/g, function(c){
    return String.fromCharCode((c <= "Z" ? 90 : 122) >= (c = c.charCodeAt(0) + 13) ? c : c - 26);
  });
};
//decode the HTML content
 var decodedHTML = ajaxResponseHTML.rot13();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...