[js]輕便的XMLHttpRequest應用函數:downloadUrl()
2024-09-01 08:29:44
供稿:網友
前段時間在用google map api的函數庫的時候,發現里面的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); // 這里處理返回的數據
});
用法二:先定義回調函數,然后傳入
function test(data, responseCode) {
alert(data); // 這里處理返回的數據
}
downloadUrl('http://www.ugia.cn/wp-data/test.htm', test);
源代碼:
代碼如下:
/**
* download url lite
*
* @author: legend(legendsky@hotmail.com)
* @link: http://www.ugia.cn/?p=122
* @version: 1.0
*
* @param string url
* @param string callback 回調函數
* @param string data post數據
*
* @return void
*/
function downloadUrl(url, callback, data)
{
// init
url += url.indexOf("?") > 0 ? "&" : "?";
url += "random_download_url=" + Math.random();
if (typeof data == 'undefined')
{
var data = null;
}
method = data ? 'POST' : 'GET';
// create XMLHttpRequest object
if (window.XMLHttpRequest)
{
var objXMLHttpRequest = new XMLHttpRequest();
}
else
{
var MSXML = ['MSXML2.XMLHTTP.5.0', 'MSXML2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP', 'Microsoft.XMLHTTP'];
for(var n = 0; n < MSXML.length; n ++)
{
try