Russian Federation
Russian Federation

Reputation: 194

"TypeError: Cannot read property 'get' of undefined", Axios, Vue.JS

I am getting this strange error from Vue when trying to access get request from api using axios, I am getting "TypeError: Cannot read property 'get' of undefined"

enter image description here

 <template>
    <div class="home">
        <h1>{{ msg }}</h1>
        <p>Welcome to your new single-page application, built with <a href="https://vuejs.org" target="_blank">Vue.js</a>.</p>
    </div>
</template>

<script>
    var Vue = require('vue');

   // import axios from "axios";

    window.axios=require('axios');
    export default {
        name: 'Home',
        props: {
            msg: String
        },
        component: {
        },   
        mounted: function () {
            alert('Hi ');
            this.axios.get('https://api.github.com/users')
                .then(value => {
                    alert(value);
                         
                });
        }

    };
</script>

<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
</style>


 

Upvotes: 5

Views: 26455

Answers (2)

Vinod Rajan
Vinod Rajan

Reputation: 40

I had same issue and solved it by adding type="module".

Upvotes: 0

Majed Badawi
Majed Badawi

Reputation: 28404

this does not reference to window in your case. A better approach would be importing axios in the component:

import axios from 'axios';

A more efficient way is to set it once globally in the main.js file:

Vue.prototype.$http = axios

And using it where ever you want as this.$http

Upvotes: 7

Related Questions