我有一个奇怪的问题。我正在从div contenteditable读取HTML,然后向我的后端发送一个AJAX请求,将该HTML保存到mongodb文档,我还将完全相同的HTML 保存到localStorage。
而且,猜猜会发生什么?当文本稍后加载时,localStorage渲染得很好,但是,从数据库中检索到的数据会变成带有&amp; nbsp和<div>
的文本。 MongoDB在保存之前是否对数据做了些什么?
答案 0 :(得分:2)
听起来从服务器返回的文本是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
答案 1 :(得分:-1)
它与MongoDB无关,它是AJAX调用。
响应AJAX调用的字符串将转换为字符实体,否则它们将使用'&lt;'等字符来破坏DOM。你需要做的就是将它们转换回来。