原因

ajax的返回值类型是json,text,html,xml类型,或者可以说ajax的接收类型只能是string字符串,不是流类型,所以无法实现文件下载。但用ajax仍然可以获得文件的内容,该文件将被保留在内存中,无法将文件保存到磁盘。这是因为JavaScript无法和磁盘进行交互,否则这会是一个严重的安全问题,js无法调用到浏览器的下载处理机制和程序,会被浏览器阻塞。

实现下载的方法

  1. 隐藏表单,用提交表单的形式
  2. 用window.open() 或 window.location.href()
  3. 创建iframe,iframe的src可以是文件地址url来直接下载文件

下载时注意要设置contentType,content-disposition 
response. setHeader(“content-disposition”, “attachment; filename=123.doc”); 
response.setContentType("application/msword");

参考:http://langgufu.iteye.com/blog/2076373

ajax请求无法下载文件相关推荐

  1. ajax请求后台下载文件

    今天遇到一个需求,利用freemarker进行word导出.一般我们都是写好word模板,然后后台查询到所需要的数据,数据+模板=输出,利用freemarker提供的api进行word导出的.我这里有 ...

  2. 前端接收pdf文件_原生ajax请求获取pdf文件流本地下载(支持谷歌IE)

    项目中要实现本地下载pdf文件,ajax请求获取到文件全路径,如上,a标签href属性赋值跳转,在iframe里面,谷歌浏览器被阻止下载.那只能另想办法.经过几天的摸索和后台调整接口数据流,终于解决. ...

  3. python爬虫今日头条_python爬虫—分析Ajax请求对json文件爬取今日头条街拍美图

    python爬虫-分析Ajax请求对json文件爬取今日头条街拍美图 前言 本次抓取目标是今日头条的街拍美图,爬取完成之后,将每组图片下载到本地并保存到不同文件夹下.下面通过抓取今日头条街拍美图讲解一 ...

  4. Vue项目:js模拟点击a标签下载文件并重命名,URL文件地址下载方法、请求接口下载文件方法总结。

    URL文件地址下载方法 一.正常情况下,我们都如此下载文件并修改文件名,在a标签上面添加download属性 //文件下载downFile() {if ('download' in document. ...

  5. ajax发送请求不能下载文件,浏览器输出乱码及解决方式

    最近做导出excel文件,怎么写下载的时候都是在浏览器输出的码,然后就想到是不是ajax请求不能直接请求下载文件,果然是这样. ajax不能请求下载文件的原因: 因为response原因,一般请求浏览 ...

  6. linux curl 命令 http请求、下载文件、ftp上传下载

    1. curl 命令简介 cURL(CommandLine Uniform Resource Locator),是一个利用 URL 语法,在命令行终端下使用的网络请求工具,支持 HTTP.HTTPS. ...

  7. php通过ajax下载文件,通过ajax调用php下载文件

    我有一个按钮,点击它会调用ajax函数. 这是我的ajax功能 function csv(){ ajaxRequest = ajax();//ajax() is function that has a ...

  8. 在unity 中,使用http请求,下载文件到可读可写路径

    在这里我用了一个线程池,线程池参数接收一个带有object参数的,无返回值的委托 ,下载用到的核心代码,网上拷贝的,他的核心就是发起一个web请求,然后得到请求的响应,读取响应的流 剩下的都是常见的I ...

  9. 使用FormData进行Ajax请求上传文件

    Servlet3.0开始提供了一系列的注解来配置Servlet.Filter.Listener等等.这种方式可以极大的简化在开发中大量的xml的配置.从这个版本开始,web.xml可以不再需要,使用相 ...

最新文章

  1. 将博客搬至51CTO
  2. 一笔画问题 (DFS或并查集)
  3. 怎样增加混凝土粘聚性_改善中低强度等级混凝土粘聚性的方法
  4. 【我看Hibernate】Hibernate 介绍及其简单应用
  5. cassert与NDEBUG,_DEGUG
  6. 雪珊教你学计算机,我日了数学老师
  7. Ubuntu16.04 +cuda8.0+cudnn+opencv+caffe+theano+tensorflow配置明细
  8. Java经典实例:比较浮点数
  9. ThinkPHP 3.1.2 控制器的模块和操作
  10. 使用PHP自带的ZipArchive的一些问题
  11. PHP 实现微信登录
  12. python常用数学符号_ML-常用数学符号(示例代码)
  13. indexOf 用法总结
  14. 小器件,大作用-光纤环形器在光纤传输中的应用
  15. Git amend:修改最近一次提交
  16. Chrome安装程序遇到错误 0xe0000008解决办法
  17. 进行最大公约数和最小公倍数的求解
  18. python背景图颜色_更改特定子图背景颜色(饼图外部)
  19. iNotePad流氓软件卸载
  20. Distributed Database Using Sharding Database Architecture论文阅读

热门文章

  1. 【IoT】如何使用软件加密(文件夹加密工具.exe),并破解工具
  2. 利用Python对文件进行解压缩
  3. STM32F0系列创建基础工程模板+按键点灯
  4. Android 代码 空格处理
  5. TP4056国产替代DP4056 1A 锂离子电池充电器芯片
  6. java.lang.RuntimeException: Unable to start activity ComponentInfo解决方案
  7. java开发用i5还是i7_平面设计用i5还是i7?i5
  8. 全世界最像人的「机器人」,本身就是人
  9. Nmap扫描工具的使用
  10. java路由方法_路由选择算法的JAVA实现.doc