為什么用MSXML2.XMLHTTP無法獲取網頁的源代碼?


function getHTTPPage(url)
dim Http 
set Http=server.createobject("MSXML2.XMLHTTP")
Http.open "GET",url,false 
Http.send() 
if Http.readystate<>4 then 
exit function 
end if 
getHTTPPage=bytesToBSTR(Http.responseBody,"GB2312") 
set http=nothing 
if err.number<>0 then err.Clear 
end function 

Function BytesToBstr(body,Cset) 

dim objstream 

set objstream = Server.CreateObject("adodb.stream") 

objstream.Type = 1 

'objstream.Mode =3 

objstream.Open 

objstream.Write body 

objstream.Position = 0 

objstream.Type = 2 

objstream.Charset = Cset 

BytesToBstr = objstream.ReadText 

objstream.Close 

set objstream = nothing 
End Function


想用它做一個生成靜態html的頁面,但是好像這個代碼獲取不了頁面的html代碼,在本地是行的。

8 个解决方案

#1


確認服務器是否做了安全設置,比如端口過濾,防火牆設置等,至少要開放本地任意端口到目標80端口
服務器是否支持dns解析,可能關閉了udp端口無法解析dns,嘗試直接使用ip連接.

#2


有些服務器是限制了xmlhttp這個組件的,你可以用探針看一下.

#3


<%
On Error Resume Next
Response.Write "<h3>服務XmlHttp組件支持情況:</h3>"
oxml=array("Msxml2.ServerXMLHTTP.6.0","Msxml2.ServerXMLHTTP.5.0","Msxml2.ServerXMLHTTP.4.0","Msxml2.ServerXMLHTTP.3.0","Msxml2.ServerXMLHTTP","Msxml2.XMLHTTP.6.0","Msxml2.XMLHTTP.5.0","Msxml2.XMLHTTP.4.0","Msxml2.XMLHTTP.3.0","Msxml2.XMLHTTP")
for i=0 to ubound(oxml)
Set getxmlhttp = Server.CreateObject(oxml(i))
If Err Then
Err.Clear
Response.Write oxml(i)&"不支持<br/>"
else
Response.Write oxml(i)&" 支持<br/>"
end if
next
%>
用這段代碼判斷是否支持xmlhttp,除了顯示Msxml2.XMLHTTP.5.0不支持外,其他都支持!

應該不關dns解析的事吧,我用來獲取http://www.baidu.com的代碼也無法獲取,也沒提示錯誤。

#4


出現錯誤如下:

msxml3.dll error '800c0005' 

The system cannot locate the resource specified. 

/admin/admin_make_index.asp, line 7 

#5


系統找不到指定的資源

#6


組件問題。。。有可能 是防火牆引起的

#7



("MSXML2.XMLHTTP") 這個組件我還真沒有在服務器端用過。。。

而且似乎有跨域權限的問題的說。。。

#8


Ajax 采用一種沙箱安全模型。因此,Ajax 代碼(具體來說就是 XMLHttpRequest 對象)只能對所在的同一個域發送請求。在本地機器上運行的代碼只能對本地機器上的服務器端腳本發送請求。如果讓 Ajax 代碼在 www.breakneck.com 上運行,則必須 www.breakneck.com 中運行的腳本發送請求。

參考:http://www.ibm.com/developerworks/cn/xml/wa-ajaxintro2/

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com