如何为axios创建包装器功能
我想从一个函数返回axios,以便如果我的项目切换到另一个获取api,就可以轻松完成
我正在做这样的事情
import axios from 'axios'
export function apiCall(){
axios.defaults.headers.common = {
"X-Requested-With": "XMLHttpRequest",
"X-CSRFToken": "example-of-custom-header"
};
return axios
}
在所有操作中,我都在使用
import apiCall from './somepath
function fetchContent(){
return apiCall.get('http://localhost:3003/')
}
但是我得到TypeError: _ApiCall__WEBPACK_IMPORTED_MODULE_3__.default.get is not a function
答案 0 :(得分:1)
尝试return apiCall().get('...')
-强调apiCall()
之后的多余括号
答案 1 :(得分:1)
要使用已定义的axios包装器模块,您需要将apiCall
作为如下函数调用:
import apiCall from './somepath
function fetchContent(){
/* Add () after apiCall */
return apiCall().get('http://localhost:3003/')
}
答案 2 :(得分:1)
此代码有2处错误。
apicCall().get
是一个函数,因此应为apiCall
。 import {apiCall} from './somepath'
但是,我建议您这样做:
import axios from 'axios';
axios.defaults.headers.common = {
"X-Requested-With": "XMLHttpRequest",
"X-CSRFToken": "example-of-custom-header"
};
export default axios;
您可以这样做:
import axios from './somepath'
,然后像平常一样使用axios api,因为那将是同一对象。