我正在处理与其他两个线程相同的错误消息(作为主题):
Suppress ADO Security Warning in JavaScript/HTM Page 和
How to create intranet website accessing database dynamically without server or server side scripts?
但我的应用程序只在本地计算机上运行,与任何网络或远程数据库无关。
该问题仅发生在我的某些用户的计算机上。我已将程序简化为 1.js 和 1.hta,如下所示。通过命令行“cscript.exe 1.js”运行 1.js 在用户的计算机(Windows 7)上运行良好。但是在同一台计算机上运行 1.hta 得到错误“此计算机上的安全设置禁止访问另一个域上的数据源”。 1.js 和 1.hta 几乎一样!
产生问题的行是调用:ado.LoadFromFile("1.hta");
我必须使用 ADO 而不是 fso (Scripting.FileSystemObject),因为 fso 无法访问 utf-8。
==== 1.js ============
// run me through a DOS box command line : cscript.exe 1.js
var ado;
ado = new ActiveXObject("ADODB.Stream");
var data;
ado.CharSet = "utf-8";
ado.Open();
ado.LoadFromFile("1.js");
data = ado.ReadText();
ado.Close();
WScript.echo(data);
==== 1.hta ==========
<HTML>
<HEAD>
<meta http-equiv="x-ua-compatible" content="ie=9">
<HTA:APPLICATION ID="Debug"
caption="yes"
maximizebutton="no"
minimizebutton="no"
sysmenu="yes"
BORDERSTYLE="complex"
BORDER="thick"
/>
<TITLE>HTA - Debug</TITLE>
<script language="JScript">
var ado;
ado = new ActiveXObject("ADODB.Stream");
var data;
ado.CharSet = "utf-8";
ado.Open();
ado.LoadFromFile("1.hta");
data = ado.ReadText();
ado.Close();
</script>
</HEAD>
<BODY>
<H2>HTA - Debug, try to read my own source code "1.hta"</H2>
<div id=sourcecode></div>
<script language="JScript"> sourcecode.innerText=data;</script>
</BODY>
</HTML>
1.hta 在我能找到的所有 Windows7、Windows 8、Windows 10 计算机上都可以正常工作。为了确保可以帮助我的人能够 100% 重现该问题,我发现 1.hta 在 Windows XP 上总是失败。这是我可以重现问题的唯一方法。我们曾尝试更改 IE 的安全设置,它对修复生病的计算机或将任何健康的计算机插入疾病都不起作用。我相信 HTA 不是指 IE 的设置。
为什么在某些计算机上会发生这种情况?点我任何提示将不胜感激。
最佳答案
这对我来说效果很好。
修改 IE 中的 Internet 选项:
转到 Internet 选项 -- 安全选项卡 -- 选择 Internet 和本地 Intranet -- 单击自定义级别(按钮 ) -- 杂项 -- 为跨域访问数据源选择启用。
之后,我重新打开了 QLIKVIEW 模型。
对我来说它有效..
祝你好运
关于HTA : "Safety Settings on this computer prohibit accessing a data source on another domain",我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32177060/