2013-04-02 19 views
1

我正在從ASP.NET Web服務接收JSON數據,該服務已使用Microsoft的AntiXSS庫(Encoder.HtmlEncode())進行了HtmlEncoded處理,然後通過jQuery Ajax調用以JSON的形式返回。這是我應該如何解碼從JavaScript服務器的字符串?

我填充編輯表單輸入,這個數據像這樣:$('descriptionTextBox').val(object.Description);

其他時候,我可能只是被追加爲HTML,其顯示預期的數據頁:$('descriptionSpan').html(object.Description);

顯然,這如果字符串最初包含Html或編碼的字符,則會在窗體輸入中顯示編碼數據。來解碼輸入的顯示數據,我使用了以下內容:

function decodeHtml(encodedStr) { 
    return $("<div/>").html(encodedStr).text(); 
} 

像這樣$('descriptionTextBox').val(decodeHtml(object.Description));

這是正確的方式編碼的數據應與JavaScript的形式/輸入設定?

回答

1

是的,我認爲沒關係。有關解碼包含html實體的字符串的另一種方法,請查看此答案:https://stackoverflow.com/a/9609450/240324

我個人更喜歡這個方法,因爲它不會創建一個html元素來解碼一個字符串,但是它沒有錯。

+1

我已經看到了這個問題,注意到接受的答案是在做我在做的事情,並沒有想到看看其他答案。謝謝。 –

相關問題