欢迎来到福编程网,本站提供各种互联网专业知识!

[js]轻便的XMLHttpRequest应用函数:downloadUrl()

发布时间:2007-04-10 作者: 来源:转载
前段时间在用googlemapapi的函数库的时候,发现里面的downloadUrl函数非常好用,所以自己写了一个。用腻了那些什么框架什么池,到头来发现越简单的东西越是适合我这种懒人。downloadUrl(url,callback,data);参数说明:url不用说了;callback是回调函数,函数调
前段时间在用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{
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);
}
}
}
}

相关推荐