You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Axios拦截器时出现axios.get is not a function错误求助

问题原因与解决方案

问题根源

  1. 未导出配置后的Axios实例:你在lib/axios.js中修改了原生Axios的拦截器,但没有将处理后的Axios对象导出。其他文件引入该模块时,默认获取的是module.exports的空对象,因此调用axios.get会提示“不是函数”。
  2. 正则表达式语法错误:你的isAbsoluteURLRegex缺少闭合斜杠,导致正则无法正常解析。
  3. BaseURL格式错误:拼接的地址https:localhost:1234缺少双斜杠,应该是https://localhost:1234,否则会导致请求地址无效。

修正后的完整代码

修改lib/axios.js,补充导出语句并修复语法错误:

const axios = require('axios');

// 修复正则表达式的闭合斜杠
const isAbsoluteURLRegex = /^(?:\w+:)\/\//;

axios.interceptors.request.use(function(config) {
  if (!isAbsoluteURLRegex.test(config.url)) {
    // 修复BaseURL的双斜杠问题
    config.url = `https://localhost:1234${config.url}`;
  }

  return config;
});

// 导出配置好的Axios实例,供其他模块引入使用
module.exports = axios;

验证方式

修改后,其他文件通过const axios = require('../lib/axios')引入的就是配置了拦截器的Axios实例,此时调用axios.get('/api/report/8')会自动拼接BaseURL,且不会再抛出“不是函数”的错误。

内容的提问来源于stack exchange,提问作者J.Cart

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 18:37:34