如何编码整个html响应数据,然后通过JS解码它


How to encode entire html response data and then decode it via JS?

我想编码所有的数据被ajax请求(所以数据必须在服务器端编码),然后一旦数据被客户端接收,它将通过JS解码,然后处理为可读的HTML数据。

我使用PHP在服务器上呈现数据。最有效、最快、最简单的方法是什么?

谢谢!

你不是在尝试重新发明HTTP请求/响应吧?如果是这样,就放弃AJAX,直接请求一个页面。

然而,如果你只是试图加载"一些"HTML内容转储到页面上的容器那么jQuery有一个简单的方法叫做.load()

http://api.jquery.com/load

更新:根据评论中的讨论,这里是一个不安全的快速混淆技术在服务器端的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();

通过JSON与PHP通信,json_encode()json_decode()