axios的onDownloadProgress返回参数的total为0

想实现一个进度条效果,查了一下,需要使用axios的onDownloadProgress。然后把里面的loaded除于total就可以。但是不知道为什么,total是0。

求大佬解答

代码如下

import React, { Component } from 'react';
import './App.css';
import Axios from 'axios';
class App extends Component {
    doRequest = () =>{
        Axios({
            url:"http://localhost:1212/a.jpg",
            method:'get',
            //获取请求进度
            onDownloadProgress(progressEvent) {
                console.log(progressEvent);
                console.log(Math.round(progressEvent.loaded  /  progressEvent.total  *  100) +  '%');
            }
        })  
    }
    render() {
        return (
            <div className="App">
                <button onClick={this.doRequest}>点击请求文件</button>
            </div>
        );
    }
}

export default App;

返回结果如下
返回结果

阅读 14.6k
3 个回答
新手上路,请多包涵

让后端在响应头上加上Content-Length就行了,如果是文件的话,可以读取文件的大小,获取到文件大小总字节数,加上就行了。更多详细,请看笔者的文章:https://segmentfault.com/a/1190000043662624

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏