接口状态码为200,但响应数据还没加载出来,拿不到接口返回的数据?

当我点击导出按钮时,调用导出接口,接口状态码为200,但响应数据为空,这是控制台会直接打印一个空对象,过了6、7秒之后,响应数据才显示,但我已经拿不到响应数据了,即使用延时器延迟console.log也不得
3a04f6573a42729a5b1aa3ce57df484.jpgb0de7fae8a1b84655c643cbe3d111f7.png

代码:
1、exportSelectedRop(values).then(value => {

  console.log('value', value);
});

2、//导出
export async function exportSelectedRop(data) {
return await request.post(desk/exportRop, {params:{...data}, responseType: 'blob' });
}

响应标头:

Access-Control-Allow-Credentials: true
Access-control-Allow-Headers: User-Token, Authorization, Content-Type, Depth, User-Agent, X-File-Size, X-Requested-With, X-Requested-By, If-Modified-Since, X-File-Name, X-File-Type, Cache-Control, Origin
Access-control-Allow-Methods: GET, POST, OPTIONS, PUT, DELETE
Access-Control-Allow-Origin: http://localhost:3010
Access-Control-Expose-Headers: *
content-disposition: attachment;filename="rop%E5%AF%BC%E5%87%BA.xls"
Content-Type: multipart/form-data;charset=UTF-8
Date: Wed, 21 Sep 2022 10:32:00 GMT
Transfer-Encoding: chunked

请求标头:

Accept: */*
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Connection: keep-alive
Content-Length: 0
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Host: ------------
Origin: http://localhost:3010
Referer: http://localhost:3010/
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) 
Chrome/105.0.0.0 Safari/537.36

少量数据导出时,可以拿到后端返回:1663813001657.png

阅读 8.7k
2 个回答

一般来说不会有这样的情况,我把网络设置为慢3G后请求导出接口,返回200之后获取全部数据持续了40s+也是可以拿到完整数据的。
可以提供一下请求接口的 Request HedaersResponse Headers 么?

用FileReader 来读取下response.data,你这个返回的是文件流

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