我有一个奇怪的问题。我是从一个div CONTENTEDITABLE读取HTML,然后发送一个Ajax请求我的后端,以保存HTML到MongoDB的文档,我还保存是完全相同的HTML到localStorage的。有趣的问题; localStorage和MongoDB
而且,你猜会发生什么?当文本后装回,在localStorage的渲染罚款,但,从数据库中检索到的数据变为在整个散&的NBSP和<div>
s的文字。在保存之前,MongoDB对数据做了些什么?
我有一个奇怪的问题。我是从一个div CONTENTEDITABLE读取HTML,然后发送一个Ajax请求我的后端,以保存HTML到MongoDB的文档,我还保存是完全相同的HTML到localStorage的。有趣的问题; localStorage和MongoDB
而且,你猜会发生什么?当文本后装回,在localStorage的渲染罚款,但,从数据库中检索到的数据变为在整个散&的NBSP和<div>
s的文字。在保存之前,MongoDB对数据做了些什么?
听起来像是从服务器HTML编码返回的文本。无论MongoDB中的值是经过编码还是在发送响应之前对结果进行编码,都可以通过查看MongoDB中的实际记录来查看。
一个简单的方法与编码数据的工作是:
var decodedData = $("<div />").html(encodedData).text();
没有jQuery和这种方式背后的逻辑(编码上飞):
var el = document.createElement("div");
el.innerHTML = encodedData; //shows text that is looks to user like the HTML
var decodedData = el.firstChild.nodeValue; //text node value to use as HTML later
这是一无所知的MongoDB,它的AJAX呼叫。
在AJAX调用的响应的串将被转换为字符实体,或它们将打破乌尔DOM与像“<”字符。你所需要做的就是将它们转换回来。
它编码成[unicode的](http://en.wikipedia.org/wiki/Unicode)。 – switz