我从 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 在表单/输入上设置编码数据的正确方法吗?