2021年12月05日

参与项目 爬虫获取外部资源
协助解决人
整体耗时 1天

工作重点

response type为blod时,怎么拿到返回的json错误信息

解决思路

这是未转换格式的返回值:
image.png
需要拿到的数据:
{data{code:500;message:'文件下载失败'}}

解决方案:对返回结果进行格式转换

解决方案及相关代码展示

在请求的then中调用该函数,即可拿到正常的json字符数据

  1. // 错误时返回的json转换
  2. handlerResponseError(data) {
  3. const _this = this;
  4. const fileReader = new FileReader();
  5. fileReader.onload = function() {
  6. try {
  7. console.log("fileReader.result", fileReader.result);
  8. const jsonData = JSON.parse(fileReader.result); // 说明是普通对象数据,后台转换失败
  9. console.log("后台返回的信息", jsonData);
  10. // console.log("后台返回的信息", jsonData.msg);
  11. // console.log("后台返回的code", jsonData.code);
  12. if (jsonData.code != 200) {
  13. console.log("ffff");
  14. _this.$notify.error({
  15. title: "提示",
  16. message: `${jsonData.msg}`,
  17. });
  18. }
  19. // return jsonData;
  20. // dosomething……
  21. } catch (err) {
  22. // 解析成对象失败,说明是正常的文件流
  23. console.log("success...");
  24. }
  25. };
  26. fileReader.readAsText(data);
  27. },

个人总结

  1. 需要了解blod如何进行转换格式