前段时间在用googlemapapi的函数库的时候,发现里面的downloadUrl函数非常好用,所以自己写了一个。用腻了那些什么框架什么池,到头来发现越简单的东西越是适合我这种懒人。
downloadUrl(url,callback,data);
参数说明:
url不用说了;
callback是回调函数,函数调用的时候会有两个参数:data,responseCode,data就是responseText,responseCode就是status;
data是要post的数据,get方式时此参数可省略。
用法一:直接把回调函输写在参数中
downloadUrl('http://www.ugia.cn/wp-data/test.htm',function(data,responseCode){
alert(data);//这里处理返回的数据
});
用法二:先定义回调函数,然后传入
functiontest(data,responseCode){
alert(data);//这里处理返回的数据
}
downloadUrl('http://www.ugia.cn/wp-data/test.htm',test);
源代码:
复制代码 代码如下:
/**
*downloadurllite
*
*@author:legend(legendsky@hotmail.com)
*@link:http://www.ugia.cn/?p=122
*@version:1.0
*
*@paramstringurl
*@paramstringcallback回调函数
*@paramstringdatapost数据
*
*@returnvoid
*/
functiondownloadUrl(url,callback,data)
{
//init
url+=url.indexOf("?")>0?"&":"?";
url+="random_download_url="+Math.random();
if(typeofdata=='undefined')
{
vardata=null;
}
method=data?'POST':'GET';
//createXMLHttpRequestobject
if(window.XMLHttpRequest)
{
varobjXMLHttpRequest=newXMLHttpRequest();
}
else
{
varMSXML=['MSXML2.XMLHTTP.5.0','MSXML2.XMLHTTP.4.0','MSXML2.XMLHTTP.3.0','MSXML2.XMLHTTP','Microsoft.XMLHTTP'];
for(varn=0;n<MSXML.length;n++)
{
try
{
varobjXMLHttpRequest=newActiveXObject(MSXML[n]);
break;
}
catch(e)
{
}
}
}
//sendrequest
with(objXMLHttpRequest)
{
//setTimeouts(30*1000,30*1000,30*1000,30*60*1000);
try
{
open(method,url,true);
if(method=='POST')
{
setRequestHeader('Content-Type','application/x-www-form-urlencoded;charset=UTF-8');
}
send(data);
}
catch(e)
{
alert(e);
}
//onready
onreadystatechange=function()
{
if(objXMLHttpRequest.readyState==4)
{
callback(objXMLHttpRequest.responseText,objXMLHttpRequest.status);
delete(objXMLHttpRequest);
}
}
}
}