MSXML6.dll访问被拒绝,无法将HTTP重定向到HTTPS

MSXML6.dll访问被拒绝,无法将HTTP重定向到HTTPS,http,https,vbscript,msxml6,Http,Https,Vbscript,Msxml6,我在类似vbscript的代码中使用MSXML6通过HTTP下载数据。但是服务器现在需要连接才能升级到HTTPS。 这导致xmlhttp对象失败,错误为“msxml6.dll:访问被拒绝。” 使用嗅探工具,在接收到重定向到https响应后,操作停止,并且生成错误,没有进一步的详细信息 请求http://host/doc.php(普通http),返回的标题如下所示: HTTP/1.1 301 Moved Permanently Date: Fri, 19 Jul 2019 23:59:30 GMT

我在类似vbscript的代码中使用MSXML6通过HTTP下载数据。但是服务器现在需要连接才能升级到HTTPS。 这导致
xmlhttp
对象失败,错误为“
msxml6.dll:访问被拒绝。

使用嗅探工具,在接收到重定向到https响应后,操作停止,并且生成错误,没有进一步的详细信息

请求<代码>http://host/doc.php(普通http),返回的标题如下所示:

HTTP/1.1 301 Moved Permanently
Date: Fri, 19 Jul 2019 23:59:30 GMT
Content-Type: text/html; charset=iso-8859-1
Transfer-Encoding: chunked
Connection: keep-alive
Location: https://host/doc.php
Expect-CT: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
Server: cloudflare
但是,如果请求的URL已经是https,则操作将正常恢复,无任何投诉

在服务器端,我能做些什么来说服
xmlhttp
和平地将连接升级到https吗

更新客户端应用程序中的代码是不可能的,因为它是一个遗留应用程序,有那么多用户在使用它,而没有更新机制

要求用户在http之后更新URL并添加“s”是可行的,但太麻烦了,因为联系他们告诉他们也不容易

编辑:


结论是正确的。总结是,这是一种客户端保护功能,无法从服务器端覆盖。

中提到的问题是,您需要使用XMLHTTP的服务器版本,该版本不限于访问IE信任的站点,也不受IE安全策略的限制。这是因为XMLHTTP是专为客户端设计的,而ServerXMLHTTP是专为服务器端使用而设计的。

我还尝试重定向到另一个由普通http提供服务的host.domain.tld,但出现了相同的“访问被拒绝”错误。这似乎是一个“功能”,可以避免连接到与请求的主机不同的主机。您应该使用
ServerXMLHTTP
来避免类似的问题,请参见。此外,这是一个小问题,但注释
false表示“异步”
是不正确的。默认情况下,它是异步的,即
True
而不是
False
,您有一个同步请求。问题发生在客户端。默认情况下,XMLHTTP拒绝重定向到https或其他主机。这就是我试图克服的问题。您共享的链接中的另一个答案()指向“跨域访问数据源”的IE设置。这使我阅读了有关COR的内容,并了解到这是一种跨源资源获取的客户端保护。通过在服务器的响应中添加“Access Control Allow Origin”(访问控制允许源站)头,可以缓解这种情况。然而,这个IE设置默认设置为Disabled,这意味着IE甚至不必检查目标页面的标题。因此,最终的答案是,由于客户端的保护,这项工作无法完成。你的回答帮助我得出了结论,你应该得到赏金:)谢谢!(哦,上面说几个小时后我就不能颁奖了……)
HTTP/1.1 301 Moved Permanently
Date: Fri, 19 Jul 2019 23:59:30 GMT
Content-Type: text/html; charset=iso-8859-1
Transfer-Encoding: chunked
Connection: keep-alive
Location: https://host/doc.php
Expect-CT: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
Server: cloudflare