【发布时间】:2010-11-10 12:30:34
【问题描述】:
我们在 IE8 的客户应用程序中看到间歇性 JavaScript“访问被拒绝”错误。该错误偶尔会发生在某些用户身上,而不会发生在其他用户身上。
我可以通过跳过几个环节来可靠地在我的浏览器上重现错误:
- 转到相关页面(请注意 Internet 区域,即使 Web 服务器是在我们的子网上运行的测试服务器)
- 打开 Internet 安全属性(显示“某些设置由您的系统管理员管理”的消息)
- 打开本地内网
- 点击网站
- 点击确定
- 点击确定
- 请注意,该区域已更改为本地 Intranet(即使我没有进行更改)
- 点击页面上的下拉菜单
- JavaScript 错误“类型为空或不是对象”
调试该错误表明它在“Sys.UI.DomEvent”函数中被抛出到 Microsoft.Ajax.js 中,并且在调用堆栈中向上走显示根错误发生在“Sys.UI.DomEvent.addHandler”中当它调用“Sys.UI.DomElement._getWindow(a).event”(a 是 DispHTMLWindow2 类型)时会引发异常:
name: TypeError
description: “Access is denied.”
message: “Access is denied.”
number: -2147024891
其他用户无需进入 Internet 安全属性即可看到错误。
我对“访问被拒绝”错误所做的所有研究都表明使用来自不同来源的 iframe 存在问题,因此我从相关页面中删除了所有 iframe,但仍然看到错误。
在没有任何 iframe 的页面中,什么会导致 JavaScript “访问被拒绝”错误?
【问题讨论】:
-
从不同的协议(http 与 https)或端口请求的任何资源? Ajax 请求发送到不同的地址?
-
不,在 Fiddler 中查看,所有流量都到同一个主机/端口。
标签: javascript asp.net-ajax internet-explorer-8