我正在处理与其他两个线程相同的错误消息(作为主题): 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,如下所示。通过命令行运行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的设置。
为什么会在某些计算机上发生这种情况?指出我的任何暗示都会非常感激。
答案 0 :(得分:2)
这对我有用。
修改IE中的互联网选项:
转到Internet选项 - 安全选项卡 - 选择Internet和本地Intranet - 单击自定义级别(按钮) - 其他 - 选择启用跨域的Access数据源。
之后我重新打开了LLCIKVIEW模型。
对我而言,它有效..
祝你好运