AJAX请求文件下载

文章目录 (?) [+]

    文章部分内容转载于 http://www.cnblogs.com/sydeveloper/archive/2013/05/14/3078295.html


            JQuery 的 AJAX 函数的返回类型只有 xml、text、json、html 等类型,没有“流”类型,所以我们要实现 AJAX 下载,不能够使用相应的 AJAX 函数进行文件下载。但可以用 Javascript 生成一个 form 表单,用这个 form 提交参数并返回“流”类型的数据。在实现过程中,页面也没有进行刷新。


    方法 1:

    // Ajax 文件下载
    jQuery.download = function(url, data, method) {
        // 获取 url 和 data
        if (url && data) {
            // data 是 string 或者 array/object
            data = typeof data == "string" ? data : jQuery.param(data);
            // 把参数组装成 form 的 input
            var inputs = "";
            jQuery.each(data.split("&"), function() {
                var pair = this.split("=");
                inputs += '<input type="hidden" name="' + pair[0] + '" value="' + pair[1] + '" />';
            });
    	// request发送请求
            jQuery('<form action="' + url + '" method="' + (method || 'post') + '">' + inputs + '</form>').appendTo("body").submit().remove();
        };
    };
    
    $.download('https://lanseyujie.com/download.php', "DwnID=1234&DwnKey=a1b2c3d4e5f7", "post");


    方法 2:

    var form = $("<form>"); //定义一个form表单
    form.attr("style", "display:none");
    form.attr("target", "");
    form.attr("method", "post");
    form.attr("action", "exportData");
    
    var input1 = $("<input>");
    input1.attr("type", "hidden");
    input1.attr("name", "ID");
    input1.attr("value", "1234");
    
    $("body").append(form); //将表单放置在web中
    form.append(input1);
    
    form.submit(); //表单提交


    本文标题:AJAX请求文件下载
    本文链接:https://lanseyujie.com/post/ajax-request-download-file.html
    版权声明:本文使用「署名 4.0 国际」创作共享协议,转载或使用请遵守署名协议。
    点赞 0 分享 0