Internet Explorer 7-10删除xhr / activex中的Content-Length

时间:2013-04-10 12:09:32

标签: javascript internet-explorer xmlhttprequest

我遇到的问题非常类似于以下问题: IE's XMLhttpRequest's getResponseHeader("Content-Length") absent when Content-Encoded sent

我正在尝试获取特定JS文件的文件大小,它看起来像这样:

var req = this.window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
if (!req) {
    throw new Error('XMLHttpRequest not supported');
}
req.open('HEAD', urlToScript, false);
req.send(null);
var size = req.getResponseHeader('Content-Length');

size变量是一个空字符串,即< 10,{10}中的null。代码在其他浏览器(如FF或Chrome)上运行良好。

只有在请求的内容被gzip压缩时,才会出现此问题。

在IE中,如果我使用req.getAllResponseHeaders()打印标题,则标题缺少“Content-Length”和“Content-Encoding”:

Server: Apache-Coyote/1.1
Last-Modified: Wed, 03 Mar 2010 07:01:40 GMT
Expires: Thu, 10 Apr 2014 12:03:27 GMT
Cache-Control: public, max-age=31536000
Content-Type: text/javascript;charset=utf-8
Date: Wed, 10 Apr 2013 12:03:26 GMT

Firefox 20打印更多信息:

Server: Apache-Coyote/1.1
Content-Encoding: gzip
Vary: Accept-Encoding
Last-Modified: Wed, 03 Mar 2010 07:01:40 GMT
Expires: Thu, 10 Apr 2014 12:05:24 GMT
Cache-Control: public, max-age=31536000
Content-Type: text/javascript;charset=utf-8
Content-Length: 17669
Date: Wed, 10 Apr 2013 12:05:24 GMT
X-Cache: MISS from somewhere.com
Via: 1.1 somewhere.com:8001 (squid/2.7.STABLE9)
Connection: keep-alive
Proxy-Connection: keep-alive

我还尝试将'Content-Type'设置为'application / javascript'并手动设置'Accept-Encoding'请求标头。没有任何效果。有什么想法吗?

0 个答案:

没有答案