【问题标题】:How does IE11 populate window.location.origin?IE11如何填充window.location.origin?
【发布时间】:2015-12-19 17:39:31
【问题描述】:

我在 Internet Explorer 11非生产环境中遇到问题

window.location.originundefined

然而,在生产环境这个值实际上返回

window.location.origin = http://www.myproductionwebsite.com

此问题仅存在于 Internet Explorer 中,并且在生产和非生产环境中的 Chrome 和 Firefox 中运行良好,这让我相信它是 IE11 中的 Chakra JavaScript 引擎填充 @987654325 的方式@。

我还查看了生产和非生产环境中的请求和响应标头,所有参数都是相同的。

Internet Explorer 11 计算 window.location.origin 与 Chrome 或 Firefox 有何不同?

【问题讨论】:

  • 测试环境下window.location.href的值是多少?
  • window.location.href在测试环境中与顶部的URL相同。我只是想知道 IE11 如何在测试环境中获得origin 作为其undefined 和在生产环境中获得http://www.myproductionwebsite.com。也许它使用 DNS?
  • 我不明白为什么它会使用除了复制.href 中 URL 的开头之外的任何东西。 DNS 没有关于 URL 的信息。
  • 嗯,它真的很奇怪,它不会给我造成问题,因为我可以解决它,只是好奇。
  • 你还在面对这个问题吗?这个错误可能与它有关吗? connect.microsoft.com/IE/feedback/details/1763802/…

标签: javascript internet-explorer internet-explorer-11 intranet chakra


【解决方案1】:

Intranet 站点设置为兼容性视图,这会禁用 window.location.origin

除非明确指定其他文档模式,否则页面将在兼容性视图中运行。可以使用“工具”>“兼容性视图设置”菜单禁用此选项。

网站根据以下标准放置在 Intranet 区域中:

直接映射。与其他区域一样,用户或网络管理员可以将 URL 模式列表映射到本地 Intranet 区域。此列表可通过单击工具 > Internet 选项 > 安全 > 本地 Intranet > 站点 > 高级来查看。

PlainHostName 规则(又名“点规则”)。如果 URI 的主机名不包含任何句点(例如 http://team/),则将其映射到本地 Intranet 区域。

固定的代理绕过列表。如果用户在工具 > Internet 选项 > 连接 > LAN 设置中指定了固定代理,则列出绕过该代理的站点将映射到本地 Intranet 区域。点击高级按钮可以找到固定的代理绕过列表;它位于屏幕底部标有例外的框中。

(WPAD) 代理脚本。如果用户的代理配置是工具 > Internet 选项 > 连接 > LAN 设置中的“自动检测设置”或“使用自动配置脚本”,浏览器将运行指定的 WPAD 代理配置脚本中的 FindProxyForUrl 函数来确定应该使用哪个代理对于每个请求。如果脚本返回“DIRECT”,浏览器将绕过代理,站点将映射到本地 Intranet 区域。将 URL 映射到区域时,URLMon 将调用 FindProxyForUrl 函数来确定是否适用绕过规则。一个有趣的转折是代理脚本本身可能会调用 dnsResolve 来获取站点的 IP 地址,并将该信息用作其确定的一部分。

参考文献

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-19
    • 2018-08-24
    相关资源
    最近更新 更多