Vue.js - Uncaught (in promise) TypeError: WEBPACK_IMPORTED_MODULE_0__services_Api.a.get is not a function

方法引用:

logout(){
                this.$store.dispatch('user/loginOut').then((res)=>{
                   if(res && res.code === 0) {
                       this.$message.success('成功退出');
                       if (res.data && res.data.loginOutUrl){
                           window.location.href = res.data.loginOutUrl
                       }
                    }
                })

            }

异步请求

   //退出
      loginOut({ commit }, payload) {
        return new Promise((resolve, reject) => {
        loginOut().then(res => {
            removeToken()
            commit('SET_TOKEN', '')
            resolve(res)
          }).catch(err => {
            reject(err)
          })
        })

请求方法

export const loginOut= () => {
  return axios.get('/user/loginOut')
}

会报错:

Vue.js - Uncaught (in promise) TypeError:
WEBPACK_IMPORTED_MODULE_0__services_Api.a.get is not a function

修改方法如下,即可

export const loginOut = ()=>{
  return axios({
    url: '/user/loginOut',
    method: 'get',
  })
}

错误原因:使用axios.create()对axios进行了封装,此时axios没有.get()/.post()方法,只能使用axios()

const service = axios.create({
  baseURL: baseUrl,    //url = baseUrl + request url
})
//*****
//******
let Axios = (option) => {
  return service({...option}).catch(err => {
    throw err
  })
}
export default Axios
Logo

前往低代码交流专区

更多推荐