msxml3.dll Отказано в доступе
У меня есть следующий код:
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")
Когда я запускаю этот код, я получаю следующую ошибку.
Если я удалю &request_token=#####some_default_request_token######
это работает просто отлично.
Я также попробовал это: я снова добавил request_token
и я просто набрал в нем случайный символ, например, rexfuest_token
и как ни странно это сработало. Кажется, есть неправильный анализ в msxml3.dll. со словом запроса
Идеи?
3 ответа
Попробуйте с более свежей версией:
Set http = CreateObject("Msxml2.XMLHttp.6.0")
Это также может быть проблема с вашими настройками безопасности Интернета (см. Здесь). Откройте апплет " Свойства обозревателя" на панели управления, выберите зону для веб-сайта (возможно, "Надежные сайты") на вкладке " Безопасность " и нажмите " Пользовательский уровень…".
В разделе Разное установите для параметра Доступ к источникам данных по доменам значение Включено.
Эта проблема может быть связана с проблемами безопасности в Windows. Лучший способ исправить это заменить Microsoft.XmlHttp
/MSXML2.XMLHTTP
с MSXML2.ServerXMLHTTP
,
Я вижу, что теме уже почти 2 года, и, скорее всего, автор темы решил проблему. Я столкнулся с той же проблемой пару часов назад, и Google предоставил мне несколько ссылок. Вот некоторые из них:
- 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
- https://support.webafrica.co.za/index.php?/Knowledgebase/Article/View/615/41/msxml3dll-error-80070005-access-is-denied---loading-xml-file
- http://www.experts-exchange.com/Programming/Languages/Scripting/ASP/Q_27305017.html
Для меня решением было добавить URL в доверенные сайты.
Браузер Internet Explorer> Сервис> Свойства обозревателя> Безопасность> Надежные сайты> Сайты> Добавьте URL в поле "Добавить этот сайт в зону: " и нажмите "Добавить и сохранить".