Ответ Ajax сжат gzip - Prototype, Firefox не может справиться с этим - PullRequest
2 голосов
/ 05 марта 2010

Я пытаюсь запросить веб-сервис (с JavaScript, прототип). Сервер отвечает XML, но сжимает его; Заголовки установлены соответствующим образом.

Под Safari 4 все нормально. Ответ распакован, и JavaScript может работать с данными.

В Firefox 3.5.8 данные не возвращаются в JavaScript!

Код:

     var req = new Ajax.Request(this.url, {
        asynchronous: false,
        contentType: 'text/xml',
        method: 'post',
        postBody: xmlString,
        onSuccess: function(t) {
            // debug, place response into textarea to show
            $('responseText').value = t.responseText;
        }
    });

Это ответ, который я отслеживаю в сети:

HTTP/1.1 200 OK.
Date: Fri, 05 Mar 2010 14:10:51 GMT.
Server: Apache/2.2.9 (Debian) PHP/5.2.6-1+lenny6 with Suhosin-Patch.
X-Powered-By: PHP/5.2.6-1+lenny6.
Vary: Accept-Encoding.
Content-Encoding: gzip.
Content-Length: 2104.
Keep-Alive: timeout=15, max=100.
Connection: Keep-Alive.
Content-Type: text/xml.
.
............]s......W`.3...H&A.$.Q.^[.:....... (and so on ...)

Есть идеи, почему это происходит? Что я могу с этим поделать?

Я попытался установить заголовок «Accept-Encoding» в запросе, не могу заставить его работать должным образом. Кроме того, ответ может быть довольно большим, то есть хорошо, что он сжимается сервером.

...