首先当然是要了解一下浏览器中的XMLHttp对象了:
XMLHTTP方法:
备注:客户机可以使用XMLHTTP对象发送任意的HTTP请求,接受HTTP应答,还可以对应答的XML文档进行解析。
Open方法:初始化一个Msxml2.XMLHTTP请求,指定HTTP请求方式、URL以及鉴定信息。
语法:
Open(bstrMethod,bstrUrl,varAsync,bstrUser,bstrPassword)
参数介绍:
bstrMethod:数据传送方式,即GET或POST。
bstrUrl:服务网页的URL。
varAsync:是否同步执行。缺省为True,即同步执行,但只能在DOM中实施同步执行。用中一般将其置为False,即异步执行。
bstrUser:用户名,可省略。
bstrPassword:用户口令,可省略。
Send方法:发送HTTP请求到服务器,返回应答。
语法:
oXMLHttpRequest.send(varBody)
说明:此方法是否同步取决于Open方法的varAsync参数。如果设为True则为同步,调用立刻返回,如果设为False调用直到整个应答被接收了才返回。
setRequestHeader(bstrHeader,bstrvalue)
bstrHeader:HTTP头(header)
bstrvalue:HTTP头(header)的值
如果Open方法定义为POST,可以定义表单方式上传:
xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded")
XMLHTTP属性:
onreadystatechange:在同步执行方式下获得返回结果的事件句柄。只能在DOM中调用。
responseBody:结果返回为无符号整数数组。
responseStream:结果返回为IStream流。
responseText:结果返回为字符串。
responseXML:结果返回为XML格式数据。
运用这个原理也可以做网络小偷程序,网络爬虫应该就是应用这个东西来完成的吧,不过我没有做过,可能在不久的将来会制作个来玩玩,这里我们最主要的是看看CS中是如何封装他的:
1//AjaxStart
2/**////
3///创建回调对象,如果存在window.XMLHttpRequest()对象,则返回此对象,如果是IE则搜索Msxml2.XMLHTTP各个版本及Microsoft.XMLHTTP并创建对象返回。
4///
5functionAjax_GetXMLHttpRequest(){
6if(window.XMLHttpRequest){
7returnnewXMLHttpRequest();
8}else{
9if(window.Ajax_XMLHttpRequestProgID){
returnnewActiveXObject(window.Ajax_XMLHttpRequestProgID);
}else{
varprogIDs=["Msxml2.XMLHTTP.5.0","Msxml2.XMLHTTP.4.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP"];
for(vari=0;i
try{
varx=newActiveXObject(progID);
window.Ajax_XMLHttpRequestProgID=progID;
returnx;
}catch(e){
}
}
}
}
returnnull;
}
/**////
///Ajax回调。
///
///
///