文章部分内容转载于 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://www.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请求文件下载
版权声明:本文使用「署名 4.0 国际」创作共享协议,转载或使用请遵守署名协议。