Как использовать vue-axios в Vue3 Composition API?

Я использую express с NodeJS для запуска API-интерфейсов. Для аутентификации я использую следующий пакет

const session = require('client-sessions');

app.use(session({
cookieName: 'session',
secret: process.env.COOKIE_SECRET,
duration: 30 * 60 * 1000 * 30,
activeDuration: 60 * 60 * 1000 * 30
}));

Я использую экспресс. Я импортировал axios и VueAxios в свой main.js файл с приведенным ниже кодом:

import { createApp } from 'vue'
import App from './App.vue'
import './assets/style.css'
import router from './router'
import axios from 'axios';
import VueAxios from 'vue-axios';

const app = createApp(App)
app.use(VueAxios, axios, router)
app.provide('axios', axios)
app.provide('VueAxios', VueAxios)
app.mount('#app')

Вот код в моем блоке компонентного Javascript

import { onBeforeMount, onMounted, ref, inject } from "vue";

setup() {

    const axios = inject('axios');
    const VueAxios = inject('VueAxios');

    onMounted(async ()=> {
         
        VueAxios.axios.get(...... // I get this error - Cannot read property 'get' of undefined

        VueAxios.get(...... // I get this error - VueAxios.get is not a function

                    
        axios.get(......  // this works, but how do I use VueAxios for passing session payload? 
    })


}

person Anirudh    schedule 25.12.2020    source источник


Ответы (1)


Добавление приведенной ниже строки кода после того, как app.provide('VueAxios', VueAxios) заставило его работать

 axios.defaults.withCredentials = true;
person Anirudh    schedule 29.12.2020