HTA : "Safety Settings on this computer prohibit accessing a data source on another domain"



我正在处理与其他两个线程相同的错误消息(作为主题):禁用JavaScript/HTM页面中的ADO安全警告如何创建内网网站访问数据库动态没有服务器或服务器端脚本?但是我的应用程序只在本地计算机上运行,它与任何网络或远程数据库无关。

这个问题只发生在我的一些用户的计算机上。我将程序简化为1.js和1。Hta如下所示。通过命令行"cscript.exe 1.js"运行1.js在用户的计算机(Windows 7)上运行良好。同一台计算机上的htsa收到错误"此计算机上的安全设置禁止访问另一个域上的数据源"。1.js和1.js它们几乎是一样的!

产生问题的行调用: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。这在我能找到的所有windows 7、windows 8和windows 10电脑上都能正常运行。为了确保能够帮助我的人能够100%重现问题,我发现了1。我在Windows XP上总是失败。这是我重现问题的唯一方法。我们试过改变IE的安全设置,它既不能固定电脑的故障,也不能使任何健康的电脑生病。我相信HTA没有参考IE的设置。

为什么在某些计算机上发生这种情况?

这对我来说很有效!tnx !

修改IE中的internet选项:

进入Internet选项——安全选项卡——选择Internet和本地Intranet——单击自定义级别(按钮)——杂项——为跨域访问数据源选择启用。

之后我重新打开了qlikview模型。

对我来说很有用。

好运