我遇到了一个非常奇怪的问题。我们有一个使用 jquery 和 jqplot 的内部网站/应用程序。
当我们尝试使用我们测试过的所有浏览器访问网站上的页面时,除了适用于 XP 的 Internet Explorer 8 之外,其他浏览器都运行正常。Win 7 可以使用 IE8 和 IE9。奇怪的是:当我们使用 FQDN(dnsname.ourdomain.net)访问网站(在 IE8 XP 中)时,它不起作用。当仅使用 DN(dnsname)、computername 或 computername.ourdomain.net 时,它可以正常工作。
所谓无法正常工作,是指页面无法完全加载。有些对象无法加载,而其他对象则按预期加载。这几乎就像浏览器由于某些查找错误或其他原因而拒绝加载页面上的某些部分。
也许有人了解 XP/IE8 如何处理 dns/缓存/凭据或浏览器/操作系统的其他基本问题……可以对这个问题提供一些启示。
更多信息:
当我们尝试访问从根文档(即 aspx 文件)链接的页面时,它不起作用。尝试 dnsname.ourdomain.net 时,它指向 default.aspx。单击该文档中的链接时,我们得到的是空页面。如果我们重新启动浏览器(XP 上的 IE8)并直接转到完整路径:dnsname.ourdomain.net/path/to/file/Default.aspx,它会按预期加载。但只有在重新启动浏览器后才会这样。
更多信息(5 月 19 日):
我进一步指出,当在 wcf-webservices 上使用 POST 从 Web 服务器检索数据时,它不起作用。搜索了许多有关该特定问题的帖子,但到目前为止似乎没有解决问题。在 XP/IE8 上运行时,我收到 400,错误请求。当我尝试使用 Fiddler 进行调试时,我神秘地工作了,因为(我认为)它设置了一些代理来捕获请求。也许这正在成为一个更适合 Server Fault 的问题。
答案1
您是否检查过 IE8 是否在 XP(页面菜单下)和 Win7 上使用兼容模式?
还要检查 IE8 在 WinXP 和 Win7 PC 上将网站放在了哪个安全区域。
如果那里没有线索,IE8 有一套不错的开发工具。在您正在测试的页面上按 F12 即可调出它们。从那里,您可以通过单击开发人员工具窗口顶部菜单栏中的选项来检查(和更改)IE8 正在使用的浏览器模式和文档模式。
您可能还想测试一下 jquery 是否已加载。为此,请打开控制台(开发人员窗口中的脚本选项卡)并输入:
console.log($.fn.jquery);
你应该得到类似这样的结果:
LOG: 1.5.1
其中 1.5.1 是您加载的 jquery 版本。
您可以测试 JQPlot 是否已加载:
if($.jqplot) {console.log("JQPlot loaded")} else {console.log("JQPlot not loaded")};
答案2
问题已经解决!
经过多次搜索,我们最终找到了 DNS 服务器以及记录的设置方式。服务器的 DNS 记录设置为指向同一服务器的指针 (PTR),导致反向查找不匹配。当我们将 DNS 记录设置为指向同一服务器的 ALIAS 时,它就可以正常工作。我们不得不把责任归咎于这里的 DNS 人员……
这肯定是 XP 上 IE 的实现中出现了某些问题(错误!),导致了这种行为,因为我们没有在任何其他操作系统/浏览器组合上看到任何问题。