我有一个数据表和数据源(yui 2.6)。xhrataSource连接到一个XML生成地址,这个地址是servlet,在这里我通过printwriter将XML输出到响应中。
Servlet:
String data = dataProvider.fetch(request.getPathInfo());
int cLen = data.length();
response.getWriter().append(data);
response.setContentLength(cLen);
response.setContentType("text/xml");
response.getWriter().flush();
JavaScript:
var url = "../data/SomeProvider";
this.myDataSource = new YAHOO.util.XHRDataSource(url);
this.myDataSource.responseType = YAHOO.util.DataSource.TYPE_XML;
this.myDataSource.connXhrMode = "queueRequests";
this.myDataSource.responseSchema = responseSchema;
this.myDataSource.maxCacheEntries = 0;
它在FF3中工作正常。我可以通过Firebug看到返回的XML,它看起来很好;表和其他所有与数据源相关的东西都很好。
在IE8中,对于完整的数据集(390行..没有那么大,真的),数据表声称没有找到任何行。但是,如果我把大小减小(比如说,20-30行),那就行了。我一直在寻找高低,但我没有想法-有没有线索我错过了什么?
编辑
其他信息。当XML响应跨越8192字符标记时,失败是正确的。根据我读到的内容,ie在url或参数字符串中的长度限制为8192个字符——但是为什么这个限制会应用于写入响应流本身的数据呢?或者xmlhttpRequests的处理方式不同?