【问题标题】:Encoded HTML in database back to page数据库中的编码 HTML 返回页面
【发布时间】:2011-02-04 14:54:19
【问题描述】:

我在数据库中有以下编码:

<p>
Content <span style="color: #ffffff"><span style="background-color: #ff0000">1+1+1+1=4</span></span>.</p>

我想将此值放入 HTML div 标签中。

我是在将上述值发送回客户端之前对其进行解码,还是在客户端对其进行解码?

我正在使用 jquery 和 asp.net (vb)

这是我的 jquery,它只是在屏幕上将 json 数据显示为 html,而不是在警告框中弹出。

    function get_page( id ) {
        $.ajax({
            url: 'get_json.aspx?rand=' + Math.random(),
            type: 'POST',
            data: { intPageID:id },
            dataType: 'json',
            success: function(results) { 
                alert(results);
                /*
                $('input#txtID').val(results.id);
                $('input#txtHeading').val(results.heading);
                $('textarea#taContent').val(results.content);
                */
            }
        });

这是一个后续问题:Encode HTML before POST

【问题讨论】:

    标签: asp.net html jquery


    【解决方案1】:

    这是样式/偏好的问题,因为您显然可以通过任何一种方式呈现它。

    我会在服务器端渲染它:

    • 节省带宽(编码开销+解码脚本)
    • 让输出更简单、更快速且使用更少的 javascript
    • 在 html 输出中隐藏内部细节。用户不必知道某些页面以 html 形式存储在数据库中。

    如果你偏执,那么在你编码的同一层解码(或使用相同的工具)——这将有助于避免误解“编码”的确切含义;)

    【讨论】:

      【解决方案2】:

      我不会全部编码,然后将其发送回字符串文字(确保将“替换为\”)。然后可以使用以下方法将其注入页面:

      $('textarea#taContent').html(results.content);
      

      【讨论】:

      • 基本上,我想将该值放入 json 数据中,将 json 传递回客户端,然后将 json 数据添加到正确的标签/控件中。
      • @oshiro 不,JSON 没有必要
      【解决方案3】:

      您可以在它到达客户端之前对其进行解码。

      无论如何,如果您通过 asp.net,则无需使用 javascript 解码。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-08-17
        • 1970-01-01
        • 1970-01-01
        • 2014-10-10
        • 1970-01-01
        • 1970-01-01
        • 2017-08-04
        • 1970-01-01
        相关资源
        最近更新 更多