文章部分内容转载于 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 国际」创作共享协议,转载或使用请遵守署名协议。