我继承了一个网站进行一般维护。网页是ASP页面,但我的大部分工作都是使用html / css。该网站已经运作了好几年,直到现在。当我尝试加载包含VB脚本的页面时,我收到以下错误:
Microsoft VBScript运行时错误'800a01a8'
需要对象:'[object]'
/new_products.asp,第12行
asp页面的名称根据被调用的页面而改变,但是行引用是相同的。
生成错误的代码如下:
Dim objXMLHTTP
Dim coordinates
Set objXMLHTTP = Server.CreateObject("Microsoft.XMLHTTP")
ip = Request.ServerVariables("REMOTE_ADDR")
objXMLHTTP.Open "GET", "http://www.ippages.com/xml/?ip="&ip&"&get=country", False
objXMLHTTP.Send
Set xmldoc = objXMLHTTP.responseXML
country = xmldoc.selectSingleNode("ip_address/lookups/lookup_country").text
set objXMLHTTP=nothing
theCountry = Trim(UCASE(country))
If theCountry = "CA-CANADA" then
Bags = "13.99"
SB4Pack = "14.00"
currency_code = "CAD"
lc = "CA"
Pref = "$"
ShipType = 1
ElseIf theCountry = "US-UNITED STATES" then
Bags = "13.99"
SB4Pack = "14.00"
currency_code = "USD"
lc = "US"
Pref = "$"
ShipType = 2
Else
Bags = "8.00"
SB4Pack = "11.00"
currency_code = "GBP"
lc = "UK"
Pref = "£"
ShipType = 2
End If
由于我对VB的知识非常有限,我尽力尝试找出代码停止工作的原因,但我很难过。非常感谢任何和所有帮助。
答案 0 :(得分:0)
由于这是一个特定于环境的问题,如您所提到的那样最近开始弹出...无法提供确定的声明。你需要调查它。人们能做的就是建议一些事情。我相信你的问题就是这个陈述之一。
Set xmldoc = objXMLHTTP.responseXML
country = xmldoc.selectSingleNode("ip_address/lookups/lookup_country").text
可能这个值不会出现或者Null或Nothing。如果它是Null,Nothing,请尝试打印国家/地区的值...稍后当您尝试更改国家/地区的情况时....您可以使用工具来捕获像Fidler这样的Http请求和响应工具,以验证lookup_country中的内容是否为值,或者您是否正在获取此节点。
此处声明了 theCountry
。如果它是动态变量,那么检查是否有一个启用了OptionExplicit ??