msxml3.dll访问被拒绝

时间:2013-07-01 09:42:49

标签: vbscript msxml3

我有以下代码:

Function filejson(json) 
  Dim objStream, strData 
  Set objStream = CreateObject("ADODB.Stream") 
  objStream.CharSet = "utf-8" 
  objStream.Open 
  objStream.LoadFromFile(json) 
  strData = objStream.ReadText() 
  filejson = strData 
End Function 
Function http2json(url) 
  Set http = CreateObject("Microsoft.XmlHttp") 
  http.open "GET", url, FALSE
  http.send ""                                   '<------- Line 13
  http2json=http.responseText 
End Function 
Function str2json(json,value) 
  Set scriptControl = CreateObject("MSScriptControl.ScriptControl") 
  scriptControl.Language = "JScript" 
  scriptControl.AddCode("x="& json & ";") 
  str2json= scriptControl.Eval( "x"& value ) 
End Function 
Function get_json_from_file(json,value) 
  get_json_from_file=str2json(filejson(json),value) 
End Function 
Function get_json_from_http(url,value) 
  get_json_from_http=str2json(http2json(url),value) 
End Function 
Function save_json_from_http(url,loc) 
  Set fso = CreateObject("Scripting.FileSystemObject") 
  fullpath = fso.GetAbsolutePathName(loc) 
  Dim objStream, strData 
  Set objStream = CreateObject("ADODB.Stream") 
  objStream.CharSet = "utf-8" 
  objStream.Open 
  objStream.WriteText http2json(url) 
  objStream.SaveToFile fullpath, 2 
  save_json_from_http=fullpath 
End Function
Wscript.Echo save_json_from_http("http://api.themoviedb.org/3/authentication/session/new?api_key=#####some_api_key_example#####&request_token=#####some_default_request_token######&_ctime_json_=1372670635.164760555","tmdb\temp\_tmdb_sock_w.164519518.2109")

当我运行此代码时,我收到以下错误。

VBs msxml3.dll Error

如果我删除&request_token=#####some_default_request_token######,它就可以了。

我也尝试了这个:我再次添加了request_token,我只是在其中输入了一个随机字符,例如rexfuest_token,奇怪的是它有效。似乎msxml3.dll中有一个错误的解析。 with request_token word。

想法?

4 个答案:

答案 0 :(得分:19)

此问题可能与Windows中的安全问题有关。解决此问题的最佳方法是将Microsoft.XmlHttp / MSXML2.XMLHTTP替换为MSXML2.ServerXMLHTTP

我看到这个主题已经快2年了,很可能主题首发已经解决了问题。几小时前我遇到过同样的问题,谷歌为我提供了几个链接。其中有一些:

  1. https://social.msdn.microsoft.com/Forums/en-US/1abda1ce-e23c-4d0e-bccd-a323aa7f2ea5/access-is-denied-while-using-microsoftxmlhttp-to-get-a-url-link-in-vbscript-help?forum=xmlandnetfx
  2. https://support.webafrica.co.za/index.php?/Knowledgebase/Article/View/615/41/msxml3dll-error-80070005-access-is-denied---loading-xml-file
  3. http://www.experts-exchange.com/Programming/Languages/Scripting/ASP/Q_27305017.html

答案 1 :(得分:15)

尝试使用更新版本:

Set http = CreateObject("Msxml2.XMLHttp.6.0")

这也可能是您的互联网安全设置的问题(请参阅here)。在“控制面板”中打开 Internet选项小程序,在安全选项卡中选择网站区域(可能是&#34;受信任的站点&#34;),然后单击自定义级别......

Internet Options Security tab

其他部分跨域访问数据 已启用

Security Settings - Miscellaneous

答案 2 :(得分:0)

对我来说,解决方案是在可信站点中添加URL。

Internet Explorer浏览器&gt;工具&gt;互联网选项&gt;安全&gt;可信站点&gt;网站&gt;在&#34;添加此网站到区域下添加URL:&#34;然后单击添加并保存。

enter image description here

答案 3 :(得分:0)

还可以将URL从http更改为https。我帮忙