这是我应该如何在JavaScript中解码来自服务器的字符串?

时间:2013-04-02 20:14:55

标签: jquery html json encoding antixsslibrary

我从ASP.NET Web服务接收JSON数据,该服务已经使用Microsoft的AntiXSS库(Encoder.HtmlEncode())进行了HtmlEncoded,然后通过jQuery Ajax调用返回为JSON。

我正在使用以下数据填充编辑表单输入:$('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 个答案:

答案 0 :(得分:1)

是的,我认为没关系。有关解码包含html实体的字符串的替代方法,请查看以下答案:https://stackoverflow.com/a/9609450/240324

我个人更喜欢这种方法,因为它不会仅仅为了解码字符串而创建一个html元素,但是你的方法没有任何问题。