我有一个ajax方法去webservice取回一个<table>....</table>ajax的datatype为xml.
返回的数据我用如下方式解析,responseText为返回的xmlObject
var content = responseText.documentElement.firstChild.nodeValue;这样解析出来的结果就是webservice中返回的<table>....</table>字符串.在IE中一切正常. 但是在火狐中 解析出来的数据被截断了. 大概7000多个字符左右就被咔嚓. 解析出来的数据不完整. 求问这个是什么问题.
另外问一个问题,如果我的ajax的datatype设置为text. 返回的数据直接用$("#div").html(response)这个方法,他会把<table>字符串放进DIV 而不是形成一张表. 这个问题又怎么解决呢

解决方案 »

  1.   

    另外问一个问题,如果我的ajax的datatype设置为text. 返回的数据直接用$("#div").html(response)这个方法,他会把<table>字符串放进DIV 而不是形成一张表. 这个问题又怎么解决呢看看 responseText是什么,估计是转义了,如果是的话就反转一下<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    <HEAD>
    <TITLE> New Document </TITLE>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
    <script type="text/javascript">var HtmlUtil = {
    HTML_CHARS : {
            '&': '&amp;',
            '<': '&lt;',
            '>': '&gt;',
            '"': '&quot;',
            "'": '&#x27;',
            '/': '&#x2F;',
            '`': '&#x60;'
        },
    escapeHTML: function (html) {
    return html.replace(/[&<>"'\/`]/g, 
    function (match) {
    return HtmlUtil.HTML_CHARS[match];
    });
    }
    }
    window.onload = function() {
    var s = '<table border=1><tr><td>aaaaa</td></tr></table>';
    $("#d").html(HtmlUtil.escapeHTML(s));
    }
    </script>
    </HEAD><BODY>
    <div id="d"></div>
    </BODY>
    </HTML>
      

  2.   

    把返回类型设为html试试$.post("../xx.ashx",{},function(response){
    $("#div").html(response)
    },"html");
      

  3.   


    ++楼主可以调试一下。 datatype设置为text 也很好。
    现在大多数应用都是这样做的,返回的是 json 字符串
      

  4.   

    报告, 我的datatype如果设置成text, responseText的值为<xml?...><string><table>...</table></string> 符号没有被转义. 用了你提供的方法仍然不能把这串数据以表格的形式放在div中. 应该怎么弄呢