我正在尝试查询Web服务(使用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'标头,无法使其正常工作。此外,响应可能相当大,这意味着:它很好地被服务器压缩。