• 为什么一般请求可以下载文件,Ajax 请求就不能下载


    那是因为response原因,

    一般请求浏览器是会处理服务器输出的 response,

    例如生成png,文件下载等,

    ajax请求只是个“字符性”的请求,可以读取到返回的response,但只是读取而已,是无法执行的,说白点就是js无法调用到浏览器的下载处理机制和程序。

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

    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","exportData");
    input1.attr("value",(new Date()).getMilliseconds());
    $("body").append(form);//将表单放置在web中
    form.append(input1);

    form.submit();//表单提交

  • 相关阅读:
    第九章 引用
    第八章 指针
    第六章 面向对象
    第五章 if语句与运算符
    第四章 C++数据类型
    第三章 初步了解函数
    第二章 做一个简短的C++程序
    第一章 初始C++
    vs2012 快捷键+方法
    vue如何修改生效日期范围,以及转化成yyyy-mm-dd的格式
  • 原文地址:https://www.cnblogs.com/rhett-web/p/5332378.html
Copyright © 2020-2023  润新知