【发布时间】:2016-10-18 15:25:54
【问题描述】:
我最近遇到了这个奇怪的错误。这是整个过程的流程。
- 有一个对网站的 JQuery ajax post 调用将刷新 div 的内容。它将参数传递给该网站并返回 HTML 脚本。
- 如果post成功,它会先清除div,并使用从该网站检索到的返回值重写它。
错误发生在第 2 点。
奇怪的是:
在我的机器(Windows 8)和虚拟机(Windows 10)中都可以正常工作。我对两者都使用了相同的浏览器(IE 11 和 Edge)。但是,我的同事无法执行第 2 点,因为他收到客户端错误 SCRIPT70: Permission denied。 他正在使用 Edge。
我将在下一次更新中发布部分代码。但到目前为止,我已经在安全性方面对其进行了检查,但实际上没有。
我该如何解决这个问题?
更新
这是通过 JQuery Ajax Post 调用一个网站(或 aspx)并检索和更新 div 的代码。
function RefreshDiv(isChild) {
var data = {
ActionType: "AJAX",
Action: "Refresh"
};
$.post("RefreshDivContents.aspx", data, function (result) {
if(result != '') {
var divItems;
if(isChild) {
divItems = window.parent.$("#TopDiv").find("#DivItems");
}
else {
divItems = $("#DivItems");
}
divItems.empty(); // error hit here.
divItems.append(result);
}
});
}
更新 #2 我更新了示例代码以获取更多信息。另外,我把错误放在了发生的地方,但我不知道它为什么会出现在那里。它应该只清除项目。
更新 #3 根据 Jacob 的回复,我很好奇这两个 iframe src 的协议和端口号是什么。下面是基于控制台的结果。
【问题讨论】:
-
您朋友使用的网址是什么?这些类型的错误通常是由尝试发出跨域请求或尝试从
file://URL 执行Ajax 等原因引起的。您应该收集更多关于您的同事运行代码的方式与您的方式之间的区别的详细信息。也可能存在不同的浏览器安全设置。 -
这是一个 Web 应用程序,它正在调用其中一个 aspx 页面。
-
在同一个域还是在不同域?
-
在同一个域中。
-
@Jacob,我更新了问题。我希望你能看看这个。我只是觉得很奇怪,当它遇到
.empty()时,它会抛出SCRIPT70错误。
标签: jquery windows-10 internet-explorer-11 microsoft-edge jquery-ajaxq