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

时间:2021-05-28

前段时间在用googlemapapi的函数库的时候,发现里面的downloadUrl函数非常好用,所以自己写了一个。用腻了那些什么框架什么池,到头来发现越简单的东西越是适合我这种懒人。

downloadUrl(url,callback,data);

参数说明:
url不用说了;
callback是回调函数,函数调用的时候会有两个参数:data,responseCode,data就是responseText,responseCode就是status;
data是要post的数据,get方式时此参数可省略。

用法一:直接把回调函输写在参数中
downloadUrl('http://)
*@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);
}
}
}
}

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章