我有一個奇怪的問題。我是從一個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