前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Axios 实例 JSON 的问题

Axios 实例 JSON 的问题

作者头像
kifuan
发布2022-10-24 17:10:59
4960
发布2022-10-24 17:10:59
举报
文章被收录于专栏:随便写写-kifuan随便写写-kifuan

结论

要用 axios.create 来创建实例,我之前没看文档,直接想当然的用 new axios.Axios,结果后端返回 application/json 的内容,而我只能接收到字符串

因为 axios.create 会有一些默认配置项,其中就包括了对 JSON 的处理,所以说我们平时直接用 axios.get 的时候不用手动处理 JSON 格式的数据。

源码探究

本文写于 22/10/19,当读者看到时源码可能已发生变化,不过思想还是一样的。

lib/axios.js 的 25-44 行如下:

代码语言:javascript
复制
function createInstance(defaultConfig) {
  const context = new Axios(defaultConfig);
  const instance = bind(Axios.prototype.request, context);

  // Copy axios.prototype to instance
  utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});

  // Copy context to instance
  utils.extend(instance, context, null, {allOwnKeys: true});

  // Factory for creating new instances
  instance.create = function create(instanceConfig) {
    return createInstance(mergeConfig(defaultConfig, instanceConfig));
  };

  return instance;
}

// Create the default instance to be exported
const axios = createInstance(defaults);

那么这里的 defaults 来源于 lib/defaults/index.js,其中有很多地方是用到了 JSON.parse,我这里就不深究了,读者有兴趣可以自己去看一看。

博客同步声明

按照要求,在本文末加上一段声明。为了让更多的人能看到我的文章,也是由于收到邀请:

我的博客即将同步至腾讯云开发者社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=3bur8utssk84c

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 结论
  • 源码探究
  • 博客同步声明
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档