У меня есть DataTable и DataSource (YUI 2.6). XHRDataSource подключается к адресу, производящему XML, который является сервлетом, где я записываю XML в ответ через PrintWriter.
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 строк), IE будет работать нормально. Я искал высоко и низко, но у меня нет идей - какая-либо подсказка, что мне не хватает?
EDIT
Дополнительная информация. Ошибка правильна, когда ответ XML пересекает 8192 знака. Из того, что я прочитал, IE имеет ограничение в 8192 символа в URL-адресе или строке параметра - но почему это ограничение будет применяться к данным, записанным в сам поток ответов? Или XMLHttpRequests обрабатываются по-другому?