【发布时间】:2019-07-06 01:14:55
【问题描述】:
我有一个仪表板,它不断地从 SAP 服务器检索数据。我找到了method 来检索当前服务器日期,以此来显示仪表板的最后更新时间,并将该日期打印到 DOM。
//Method from: https://stackoverflow.com/a/37934624/7626277
var req = new XMLHttpRequest();
req.open('GET', document.location, false);
req.send(null);
var headers = req.getAllResponseHeaders().toLowerCase();
var arr = headers.split('\r\n');
var response = arr.reduce(function(acc, current, i) {
var parts = current.split(': ');
acc[parts[0]] = parts[1];
return acc;
}, {});
console.log(response); //or initial alert
//Example response
{
date: "tue, 12 feb 2019 10:49:10 gmt",
cache - control: "max-age=604800",
last - modified: "mon, 11 feb 2019 09:07:33 gmt",
server: "sap netweaver application server 7.53 / as java 7.50",
content - encoding: "gzip",
…
}
这在调试模式下工作正常,每个请求都返回当前响应,但在禁用调试模式的 Internet Explorer 中,我将“未定义”打印到 DOM,但页面内容仍会使用正确的数据进行更新。
我的问题是: 我是否缺少 IE 中的配置,或者这是一个已知问题,或者我的请求方法是否错误?
【问题讨论】:
-
你只在 IE 中得到“未定义”吗?它在其他浏览器中是否正常工作?
-
对于 IE 你必须使用
new ActiveXObject("Microsoft.XMLHTTP")而不是new XMLHttpRequest(); -
是的!在 Chrome 中完美运行,但只允许在我们的仪表板中使用 IE。 @randomSoul
-
@DmitryS。我刚试过这个,它似乎也只能在调试模式下工作。
标签: javascript html json xmlhttprequest http-headers