HTA:"此计算机上的安全设置禁止访问另一个域上的数据源"

时间:2015-08-24 07:54:13

标签: hta

我正在处理与其他两个线程相同的错误消息(作为主题): Suppress ADO Security Warning in JavaScript/HTM PageHow to create intranet website accessing database dynamically without server or server side scripts? 但我的应用程序只在本地计算机上运行,​​它与任何网络或远程数据库无关。

问题发生在我的一些用户身上。只有电脑。我已将程序简化为1.js和1.hta,如下所示。通过命令行运行1.js" cscript.exe 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的设置。

为什么会在某些计算机上发生这种情况?指出我的任何暗示都会非常感激。

1 个答案:

答案 0 :(得分:2)

这对我有用。

修改IE中的互联网选项:

转到Internet选项 - 安全选项卡 - 选择Internet和本地Intranet - 单击自定义级别(按钮) - 其他 - 选择启用跨域的Access数据源。

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

对我而言,它有效..

祝你好运