代码之家  ›  专栏  ›  技术社区  ›  hoakey

jquery ajax不呈现html

  •  0
  • hoakey  · 技术社区  · 15 年前

    这就是我想要的

    <a href='#'>test</a>
    

    这就是我得到的

    &lt;a href='#'&gt;test&lt;/a&gt;
    

    这是我的密码

        function displayData(startRow, pageNumber) {
            // there's a call to jQuery AJAX here 
            $.ajax({
                type: "POST",
                contentType: "application/json; charset=utf-8",
                url: "default.aspx/GetPageLinks",
                data: "{startRow: '" + startRow + "', pageNumber: '" + pageNumber + "'}",
                dataType: "json",
                success: function(msg) {
                    displayRoutes(msg.d);
                }
            });
            return false;
        }
        });
    
        function displayRoutes(results) {
            $('#tradeRoutes').html(results);            
        }
    
    2 回复  |  直到 11 年前
        1
  •  2
  •   Will Dean    15 年前

    您是否100%确定您还没有通过服务器端的编码阶段将响应传递给POST?

    更新:也就是说,服务器返回的是一个带有真正尖括号的字符串,还是返回一个包含 &lt;/&gt;

    如果是后者,那么问题就出在服务器上,而不是浏览器上,因为你想发送真正的HTML,而不是用文本编码的HTML。

    我会使用Fiddler(或Wireshark或Firebug)来检查实际的服务器响应是什么。

        2
  •  2
  •   Community Mohan Dere    8 年前

    建立在 Will Dean's answer ,请尝试:

    function decodeHtml(encodedHtml) {
        return encodedHtml.replace(/&amp;/g,'&')
            .replace(/&lt;/g,'<').replace(/&gt;/g,'>');
    }
    
    function displayRoutes(results) {
        $('#tradeRoutes').html(decodeHtml(results));
    }
    

    jQuery plugin - HTML decode and encode

    至少这可以让你的代码在你弄清楚是什么让它工作的时候正常工作。

    推荐文章