如何修复easy-soap-request报错"axios is not a function"问题?
解决easy-soap-request报"axios is not a function"的问题
可能的原因及对应解决方案
1. 适配axios版本兼容性
easy-soap-request对axios存在版本依赖限制,部分版本的包仅支持特定axios版本。可以先卸载当前axios,安装经用户验证兼容的版本:
npm uninstall axios npm install axios@0.27.2
2. 修正包内部axios导入方式
如果调整全局axios版本无效,直接修改easy-soap-request源码:
- 找到项目里的
node_modules/easy-soap-request/lib/index.js文件 - 将原有导入代码
const axios = require('axios');替换为:
若为ES模块环境,改用:const axios = require('axios').default;
这是因为新版本axios默认导出方式变更,而包内部未做适配。import axios from 'axios';
3. 绕开easy-soap-request,直接用axios发SOAP请求
如果以上方法都不生效,直接手动构造SOAP请求:
const axios = require('axios'); async function sendSoapRequest() { const url = '你的SOAP接口地址'; const headers = { 'Content-Type': 'text/xml;charset=UTF-8', // 按需添加其他请求头,比如Authorization等 }; const xml = ` <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="你的接口命名空间"> <soapenv:Header/> <soapenv:Body> <ns:你的请求方法名> <ns:参数名1>参数值1</ns:参数名1> <ns:参数名2>参数值2</ns:参数名2> </ns:你的请求方法名> </soapenv:Body> </soapenv:Envelope> `; try { const response = await axios.post(url, xml, { headers }); console.log(response.data); } catch (error) { console.error(error); } } sendSoapRequest();
4. 切换easy-soap-request版本
尝试升级或降级easy-soap-request到适配正确的版本,比如安装v4.5.0:
npm uninstall easy-soap-request npm install easy-soap-request@4.5.0
内容的提问来源于stack exchange,提问作者Carl Oquila
相关产品推荐
相关产品推荐

