axios({
method: 'post',
url: 'url....',
data:{},
timeout: 1000*60,
responseType: 'blob',// 此选项必须设置 否则保存后的文件无法播放
headers: {
'X-Requested-With': 'XMLHttpRequest',
'Content-Type': 'application/json; charset=UTF-8',
}
}).then((response) => {
if (response && (response.status === 200 || response.status === 304 || response.status === 400)) {
var fileName = response.headers['content-disposition'].split(';')[1].split('=')[1];
var contentType = response.headers['content-type'];
var blob = new Blob([response.data])
          //如果是IE 通过msSaveBlob 下载 ,否则走h5下载
if(navigator.msSaveBlob){
navigator.msSaveBlob(blob, fileName);
}else{
var a = document.createElement('a');
a.download = fileName;
a.innerHTML = 'download';
a.href = URL.createObjectURL(blob);
            //自定义事件触发
var event = document.createEvent('MouseEvents');
event.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
a.dispatchEvent(event);
URL.revokeObjectURL(a.href) // 释放URL 对象
} return '下载成功!'; } else {
return '网络异常';
}
}).catch(error=>{
      return  '网络异常';
})

  

js HTTP 下载 处理 api 请求 返回数据流的更多相关文章

  1. 在使用Ajax请求返回json数据的时候IE浏览器弹出下载保存对话框的解决方法

    在使用Ajax请求返回json数据的时候IE浏览器弹出下载保存对话框的解决方法 最近在做一个小东西,使用kindeditor上传图片的时候,自己写了一个上传的方法,按照协议规则通过ajax返回json ...

  2. 前端总结·基础篇·JS(四)异步请求及跨域方案

    前端总结系列 前端总结·基础篇·CSS(一)布局 前端总结·基础篇·CSS(二)视觉 前端总结·基础篇·CSS(三)补充 前端总结·基础篇·JS(一)原型.原型链.构造函数和字符串(String) 前 ...

  3. 在Android中,使用Kotlin的 API请求简易方法

    原文标题:API request in Android the easy way using Kotlin 原文链接:http://antonioleiva.com/api-request-kotli ...

  4. echart.js的使用与API

    ---恢复内容开始--- echart.js的使用与API 1.echart.js的使用: 第一步:在head标签或body下创建一个script标签去引用echart.js,(该文件可以在echar ...

  5. 微信小程序之上传下载交互api

    wx.request(OBJECT) OBJECT参数说明: 参数名 类型 必填 说明 url String 是 开发者服务器接口地址 data Object.String 否 请求的参数 heade ...

  6. Node.js 种子下载器

    Node.js 种子下载器 庆祝 2018 国庆,制作了一个 Node.js 的种子下载器.爬取页面,根据页面的链接,破解另外一个网站,下载种子文件.项目比较简单,爬取页面没有使用任何爬虫框架.项目源 ...

  7. 微信小程序开发——使用mock数据模拟api请求

    前言: 微信小程序开发中,后端提供了接口设计文档,前端可以先mock数据模拟api请求进行开发调试,而且可以根据需要设计mock文件的格式和内容,这样在后端接口开发完成之前,前端可以最大限度的完成前端 ...

  8. Web3.js 0.20.x API 中文版翻译

    文档原始链接为:https://web3.learnblockchain.cn/0.2x.x/,欢迎大家前往查阅,本文只是节选开头部分的介绍及API列表索引,以下为翻译正文: 为了开发一个基于以太坊的 ...

  9. Apex API 请求

    Salesforce与网络服务的通信 在Salesforce中可以利用Apex类与远程站点的网络服务进行通信.当远程网络服务支持REST方法时,开发者可以利用Apex代码进行数据的操作. 设置远程站点 ...

随机推荐

  1. jxls:用jx:if实现字典值格式化

    用JXLS导出excel非常方便,但是我们往往需要把字典值转为中文名称,例如1转为男,这个时候就需要用到jx:if来完成. 请见下图: jx:if(condition="obj.way==1 ...

  2. shell语法学习

    [原文] 菜鸟笔记shell教程学习. 本篇博客只是记录shell的一些关键语法,主要是做一个记录,有些内容也是copy过来的,并不是一个完整的教程,想完整学习shell的同学可以前往 shell脚本 ...

  3. window系统修改时区IIS需要重启

    window系统修改时区IIS需要重启,才能获取到修改后的时区,如果不重启IIS,IIS中发布程序获取不到已经修改时区的时间.

  4. 根据本地/服务器时间获取指定时区时间 new Date指定时区时间

    1.代码 function getTimeByTimeZone(timeZone){ var d=new Date(); localTime = d.getTime(), localOffset=d. ...

  5. dbcp与c3p0的区别

    众所周知,无论现在是B/S或者是C/S应用中,都免不了要和数据库打交道.在与数据库交 互过程中,往往需要大量的连接.对于一个大型应用来说,往往需要应对数以千万级的用户连接请求,如果高效相应用户请求,对 ...

  6. java8新特性:对map集合排序

    一.简单介绍Map 在讲解Map排序之前,我们先来稍微了解下map,map是键值对的集合接口,它的实现类主要包括:HashMap, TreeMap, Hashtable以及LinkedHashMap等 ...

  7. linux环境变量 bash_profile

    linux环境变量 bash_profile [root@iZ23uewresmZ ~]# vi /root/.bash_profile <pre># .bash_profile # Ge ...

  8. jquery trigger使用方法

    jquery trigger使用方法比方说写了下面点击事件 采用trigger 要触发他<pre> $('.biaoqian_ula').on('click',function () { ...

  9. TCP/IP学习笔记3--传输方式的分类

    网络通信中有多中分类方法: )分组较短.出错几率降低,每次重发的数据量也降低,不仅提高了可靠性,也降低了时延.缺点:(1)因为数据进入交换节点后要经历存储转发这一过程,从而引起的转发时延(包含接受分组 ...

  10. QT_QML 界面设计Row和Column布局

    Column与Row的使用方式类似,下面以Column为例子: Column{ x: label_poseParamValue.x + label_poseParamValue.width + 10 ...