【问题标题】:Javascript Msxml2.XMLHTTP terminal server access deniedJavascript Msxml2.XMLHTTP 终端服务器访问被拒绝
【发布时间】:2010-03-31 08:48:09
【问题描述】:

var xmlHttpRequest = new ActiveXObject("Msxml2.XMLHTTP"); xmlHttpRequest.open("POST", "http://vat/_vti_bin/lists.asmx", false);

如何让这个脚本在终端服务器上运行?当我在本地电脑上打开它时,它可以工作,但是当我在终端服务器上的浏览器中做同样的事情时,我得到Access Denied

我尝试使用ServerXMLHTTP,但后来我得到Cannot create automation object

【问题讨论】:

    标签: javascript access-denied msxml activexobject terminal-services


    【解决方案1】:

    vat是你的本地电脑还是终端服务器?我猜这是您的本地电脑,这意味着您将受到 Same Origin Policy 的限制 - 这意味着您只能从提供页面的同一服务器发出请求。

    您可以使用JSONP 解决此问题,简而言之,它将 ajax 作为带有 js 回调的脚本标签加载。

    或者只是将您的 ajax 提要移动到您的网络服务器上。

    【讨论】:

    • 增值税是服务器( cit-srv-004.Converge-IT.local 是 dns 名称)。 Dns 名称终端服务器为 (cit-srv-003.Converge-IT.local)。但它可以在本地电脑上的浏览器中运行,当我在终端服务器桌面上的浏览器中执行相同操作时,我会被拒绝访问。
    • 将您的请求更改为指向/_vti_bin/lists.asmx(即没有主机名)
    • 可能是这样,但这就是问题所在。您的请求需要来自与网站相同的主机名,否则会受到 SOP 的限制。
    • 但是当我从本地电脑上的浏览器执行此操作时,为什么我没有这个问题,我从 http:/crm/ 调用脚本并将数据发布到 http:/vat /_vti_bin/lists.asmx
    • 你能试试看吗?
    猜你喜欢
    • 2010-11-20
    • 2011-03-06
    • 2021-03-22
    • 2018-05-01
    • 2021-02-01
    • 1970-01-01
    • 2014-06-11
    • 1970-01-01
    • 2018-05-19
    相关资源
    最近更新 更多