问题描述(见下图):

问题分析:

400是后端没有接收到请求
原因是后端高版本的tomcat不会自动对字符串进行转义
所以,前端把参数值进行转义,即encodeURI(string)

问题处理前代码(传参数用一个字符串传递):

        exportExcel(){
// 导出文件list的内容。
let uu=$.getCookie('prefixUrl');
let url=`${uu}/salesReport/exportPublicToExcel`;
let cookie=$.getCookie('sessionId');
// let cookie=encodeURI($.getCookie('sessionId'));
let info=''; //这里是查询条件。
info=`"createYear":"${this.createYear}","createWeek":"${this.createWeek}"`;
//type===3即客户拜访情况时,查看的是月
let type = this.typeListVal
if(type === 3){
info=`"createYear":"${this.createYear}","createMonth":"${this.createMonth}"`;
}
// info = encodeURI(info)
url=`${url}?type=${type}&sessionId=${cookie}&searchParams=${info}`;
// window.location.href=url;
// console.log(url)
window.open(url);
},

问题处理后代码:

        exportExcel(){
// 导出文件list的内容。
let uu=$.getCookie('prefixUrl');
let url=`${uu}/salesReport/exportPublicToExcel`;
let cookie=$.getCookie('sessionId');
// let cookie=encodeURI($.getCookie('sessionId'));
let info=''; //这里是查询条件。
info=`"createYear":"${this.createYear}","createWeek":"${this.createWeek}"`;
//type===3即客户拜访情况时,查看的是月
let type = this.typeListVal
if(type === 3){
info=`"createYear":"${this.createYear}","createMonth":"${this.createMonth}"`;
}
info = encodeURI(info)
url=`${url}?type=${type}&sessionId=${cookie}&searchParams=${info}`;
// window.location.href=url;
// console.log(url)
window.open(url);
},

  

将参数处理一下,就可以正常下载了

补充说明:也可以采用二进制流下载方式处理,可查看前面分享的文章

    还可以直接下面这样,传参方式改一下,所有参数都用&来拼接(需要后台配合)

        exportExcel(){
// 导出文件list的内容。
let vm = this;
let goRealTime,returnRealTime;
if(vm.goRealTime){
goRealTime=new Date(vm.goRealTime).getTime();
}else{
goRealTime = '';
}
if(vm.returnRealTime){
returnRealTime=new Date(vm.returnRealTime).getTime();
returnRealTime = returnRealTime + 3600*24*1000;
}else{
returnRealTime = '';
}
let uu=$.getCookie('prefixUrl');
let sessionId=$.getCookie('sessionId');
// info=`"billType":"${this.billType}","startTime":"${stratT}","endTime":"${entT}","billCode":"${this.orderNumber}","departmentName":"${this.departmentName}","ownerName":"${this.applyUserName}"`;
// url=`${url}?type=${type}&sessionId=${cookie}&searchParams=${info}`;
let url=`${uu}/useVehicleApply/exportToExcel?sessionId=${sessionId}&orderNumber=${vm.orderNumber}&departmentName=${vm.departmentName}&applyUserName=${vm.applyUserName}&goRealTime=${goRealTime}&returnRealTime=${returnRealTime}&licensePlate=${vm.licensePlate}&applyStatus=${vm.applyStatus}&useCarType=0` ;
// console.log(url);
window.location.href=url;
},

  

IE浏览器下载后台返回的Excel文件,报错400的更多相关文章

  1. 使用office 365打开excel文件报错,提示“向程序发送命令时出现问题”

    我买了一套正版的office 365装在我的windows10 上.但是每次打开excel都会报错,如图一.求教了微软技术人员,他们给出了以下办法: 图一 方法一: 修复安装Office ====== ...

  2. .net 读取Excel文件报错

    错误内容 Microsoft Office Excel 不能访问文件“D:\WWWRoot\Website\Test\Excels\Test1.xls”. 可能的原因有: 1 文件名称或路径不存在. ...

  3. node模拟后台返回json书写格式报错--Unexpected token ' in JSON at position 1

    最近在学习Node的知识,就尝试写了一个注册登陆的简单功能,但是自己在模拟后台返回值的时候,总是报错Unexpected token ' in JSON at position 1,查找原因之后,是因 ...

  4. SQL Server导入Excel文件报错

    目录 文本被截断,或者一个或多个字符在目标代码页中没有匹配项 原因 解决方法 该值违反了该列的完整性约束 空行 没有设置为允许为NULL 我以前也导入过数据,也没报错,今天再次导入数据的时候,发现了两 ...

  5. wget下载阿里云oss的文件报错403

    问题 在实际工作中,我们为了方便,会将一些脚本储存在云端(阿里云OSS),这样方便我们使用和下载,但是在实际的使用过程中,我们会遇到一些问题. 示例链接:https://djxlsp.oss-cn-s ...

  6. poi解析excel文件报错

    getFileMagic() only operates on streams which support mark(int) 使用 bis 解决 BufferedInputStream bis = ...

  7. nginx访问fastdfs文件 报错400 Bad Request

    1.修改vi /etc/fdfs/mod_fastdfs.conf 2.将url_have_group_name = false 改为 url_have_group_name = true 3.重启 ...

  8. axios+post获取并下载后台返回的二进制流

    axios+post获取并下载后台返回的二进制流 let url = $.getCookie('prefixUrl')+'/expenseword/exportWords'; let vm = thi ...

  9. ajax发送请求下载字节流形式的excel文件

    背景 开发项目中导出功能,因为数据量有点大,所以导出可能需要时间有点长,所以想用ajax异步请求. 存在问题 利用传统的js和jquery提供的ajax相关获取响应的方式是无法实现excel文件下载的 ...

随机推荐

  1. (十一)使用Jconsole监控线程

    一.案例 监控线程情况,包括阻塞.死循环等 1.1 代码如下,下述代码共有三个线程,Main.mythread01.mythread02线程,其中mythread01线程为死循环.mythread02 ...

  2. jQuery插件—获取URL参数

    做的项目中需要用到通过JS获取GET参数,上网找了一下,找到如下插件: 例如 当前你的URL是: http://www.xxx.com/index.php?test=1&kk=2 //如果想获 ...

  3. Jquery异步请求数据实例代码

    一.Jquery向aspx页面请求数据 前台页面JS代码: 代码如下: $("#Button1").bind("click", function () { $. ...

  4. Python3之实现字符反转

    参考:https://www.cnblogs.com/jasmine0627/p/9510296.html 将字符串s="helloworld"反转为‘dlrowolleh’ fa ...

  5. IBM.WMQ订阅主题,连续获取消息解决办法

    去队列里面一直获取消息,一开始想到了两种解决方案: 第一:订阅一次获取一次消息,正常的话每次都能获取到,但是要及时去清理订阅并且时间粒度不好控制 第二:订阅一次,再获取消息这里加死循环,超时MQ已经做 ...

  6. python return逻辑判断表达式(21)

    一.return逻辑判断表达式 and and:遇假则假,所以前面为假就不执行和判断后面直接返回假:前面为真则继续判断执行后面直到表达式结束或者出现假为止; # !usr/bin/env python ...

  7. Max coverage disjoint intervals

    Assume you have k<=10^5 intervals [a_i, b_i] \in [1,10^18] (some of them may overlap), and you ne ...

  8. python 如何让字符串的不具有转义的反斜杠具有转义功能

    用 codecs, 大概是這樣子: # python3 code import codecs print(codecs.getdecoder("unicode_escape")(' ...

  9. 【坑】Mybatis 多次逆向工程生成mapper文件

    在使用 mybatis 逆向工程的时候,多次逆向工程生成的文件,是不会产生覆盖的,而是追加: 假如,你第一次逆向,发生数据库的某个字段类型错了,修改以后再次逆向,那么得到的 mapper文件,将是 2 ...

  10. 串口(USART)通信-串口通讯协议简介

    物理层:规定通讯系统中具有机械.电子功能部分的特性,确保原始数据在物理媒体的传输.其实就是硬件部分. 协议层:协议层主要规定通讯逻辑,统一收发双方的数据打包.解包标准.其实就是软件部分. 简单来说物理 ...