Ответы IE AJAX обрезают все данные после нулевых символов (0x00) - PullRequest
1 голос
/ 13 января 2012

В Internet Explorer (IE6, IE7 и IE8) нулевые символы ("0x00") и любые символы после обрезаются из ответов (данных) ajax.

У меня есть цикл запросов AJAX, подобных следующему:

<code>var pages = 10;
var nextnoteid = 0;

for (isub = 1; isub <= pages; isub++)
    {
    var c = "http://www.site.com/application.exe?id=" + nextnoteid;
    $.ajax(
        {
        url: c,
        cache: false,
        async: false,
        success: function(data)
            {
            var start = data.indexOf("NEXTNOTEID") + 10;

            // save the id of the next note to retrieve
            nextnoteid = data.substring(start, start + 16).trim();
            data = data.substring(0, start - 10);

            // append note to DOM
            $("#printarea").append("<pre class='pxprintpage'>" + data + "
"); } }); }

Ответы возвращаются в следующем формате (_ представляет символ 0x00):

Note Title
Note Author
... simple text note ...
__________NEXTNOTEID__________9827482998274829__________

Как я могу получить эти данные после 0x00 в IE6, IE7 и IE8 без изменения ответа?

Ответы [ 2 ]

0 голосов
/ 02 февраля 2012

IE браузеры любят завершать строки в NULL символах. Решение состоит в том, чтобы заменить нулевые символы пробелами. К сожалению, это единственное решение, которое не совсем соответствует задаваемому вопросу.

0 голосов
/ 13 января 2012

Я не уверен, действительно ли это поможет, но попробуйте установить поле dataType в параметрах, передаваемых .ajax (), на "text".

Если это не решит проблемувзгляните на параметр dataFilter, переданный .ajax () .Это позволяет вам указать функцию обратного вызова для обработки необработанного ответа.

...