Search code examples
vbscriptmsxml3

msxml3.dll Access Denied


I have the following code:

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")

When I run this code, I get the following error.

VBs msxml3.dll Error

If I remove &request_token=#####some_default_request_token###### it works just fine.

I also tried this: I added again the request_token, and I just typed a random character in it, for example, rexfuest_token, and strangely it worked. It seems there's a wrong parse in msxml3.dll. with request_token word.

Ideas?


Solution

  • Try with a more recent version:

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

    It could also be an issue with your Internet security settings (see here). Open the Internet Options applet in the Control Panel, select the zone for the website (probably "Trusted sites") in the Security tab and click Custom level….

    Internet Options Security tab

    In the section Miscellaneous set Access data sources across domains to Enabled.

    Security Settings - Miscellaneous