Xmlhttp请求引发Access Denied错误

Mat*_*NNZ 10 vba xmlhttprequest

以下Excel宏(它正在向此网页发出xmlhttp请求以在第二阶段检索某些值)在VBA中正常工作,直到一段时间之前:

Sub WebReq()

Link = "http://it.finance.yahoo.com/q?s=^FCHI&ql=10" & str(rnd())
Set htm = CreateObject("htmlFile")

Set RequestWeb = CreateObject("msxml2.xmlhttp")
With RequestWeb
    .Open "GET", "" & Link & "", False
    .send
    htm.body.innerhtml = .responsetext
End With

End Sub
Run Code Online (Sandbox Code Playgroud)

现在,相反,在方法的调用:

    .send
Run Code Online (Sandbox Code Playgroud)

对象msxml2.xmlhttp引发以下错误:

Run-time error '-2147024891 (80070005)'
Access is denied. 
Run Code Online (Sandbox Code Playgroud)

我一直在网上看,但所有类似的线程都没有回答.任何人都可以解释一下这个错误意味着什么,如果有什么方法我可以解决它甚至只是解决它?

注意:已添加变量"链接"末尾的随机字符串以强制重新加载页面,因为脚本正在检索实时值,因此每次都应加载它.

附加信息:在寻找解决方案时,我现在注意到链接的随机部分即使在我结束运行并再次重新启动时总是产生相同的值:

Link = http://it.finance.yahoo.com/q?s=^FCHI&ql=10 .7055475
Run Code Online (Sandbox Code Playgroud)

为什么会这样?rnd()每次通话都不应该产生0到1之间的新随机值?

小智 14

使用CreateObject("MSXML2.ServerXMLHTTP.6.0")从本地计算机发出的标准请求禁止访问不受IE信任的站点.这是不执行这些检查的服务器端对象.


小智 5

我发现就我而言,将http更改为https可以解决访问被拒绝的问题。我只能假设该网站以某种方式进行了更改,并且没有告诉任何人


Saa*_*d A 5

访问被拒绝是 IE 问题

internet options > security tab > custom security level > Miscellaneous >Access data sources across domains > enable
Run Code Online (Sandbox Code Playgroud)


Ric*_*ich 2

更新

Sub WebReq()

link = "http://it.finance.yahoo.com/q?s=^FCHI&ql=10" & Str(Rnd())
Set htm = CreateObject("htmlFile")
Dim objHttp

    Set objHttp = CreateObject("Msxml2.ServerXMLHTTP")
    objHttp.Open "GET", link, False

    objHttp.Send
    htm.body.innerhtml = objHttp.responsetext
    Set objHttp = Nothing
End Sub
Run Code Online (Sandbox Code Playgroud)