React在IE9下的文件下载方案

由于ie9不支持blob对象,通过ajax下载文件没戏。

解决方案:通过模拟表单提交,下载文件,兼容ie9。

话不多说,直接上代码(代码结合了业务,填入了token。没此要求的去掉即可)

 

import {loginUser} from '../user';



const addParam = (formElement,param) =>{

    Object.keys(param).forEach(key => {

        let inputElement = document.createElement("input");

    inputElement.type = 'hidden';

    inputElement.name = key;

    inputElement.value = param[key];

    formElement.appendChild(inputElement);

})

}



export default (method,path, data, callback) => {

    let formElement = document.createElement('form');

    formElement.style.display = 'display: none';

    formElement.method = method;

    formElement.action = path;

    formElement.target = 'callBackTarget';

    if(Array.isArray(data)){

        data.forEach(param => addParam(formElement,param) )

    }else{

        addParam(formElement,data);

    }

    const user = loginUser();

    if(user){

        let inputElement = document.createElement("input");

        inputElement.type = 'hidden';

        inputElement.name = 'token';

        inputElement.value = user.token;

        formElement.appendChild(inputElement);

    }

    document.body.appendChild(formElement);

    formElement.submit();

    document.body.removeChild(formElement);

    callback && callback();

};
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值