• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    [js]轻便的XMLHttpRequest应用函数:downloadUrl()
    前段时间在用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
                {
                    var objXMLHttpRequest = new ActiveXObject(MSXML[n]);
                    break;
                }
                catch(e)
                {
                }
            }
        }

        // send request
        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);
            }

            // on ready
            onreadystatechange = function()
            {
                if (objXMLHttpRequest.readyState == 4)
                {
                    callback(objXMLHttpRequest.responseText, objXMLHttpRequest.status);
                    delete(objXMLHttpRequest);
                }
            }
        }

    您可能感兴趣的文章:
    • javascript XMLHttpRequest对象全面剖析
    • js判断IE6/IE7/FF的代码[XMLHttpRequest]
    • Javascript+XMLHttpRequest+asp.net无刷新读取数据库数据
    • javascript创建createXmlHttpRequest对象示例代码
    • 深入讲解xhr(XMLHttpRequest)/jsonp请求之abort
    • javascript对XMLHttpRequest异步请求的面向对象封装
    • JSP XMLHttpRequest动态无刷新及其中文乱码处理
    • JavaScript下通过的XMLHttpRequest发送请求的代码
    • javascript一个无懈可击的实例化XMLHttpRequest的方法
    • AngularJS入门教程之 XMLHttpRequest实例讲解
    • JS XMLHttpRequest原理与使用方法深入详解
    上一篇:建一个XMLHttpRequest对象池
    下一篇:Ajax 无刷新在注册用户名时的应用的代码
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯

    《增值电信业务经营许可证》 苏B2-20120278

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