未捕获的类型错误:无法读取 VueJs 中未定义的属性“get”

Posted

技术标签:

【中文标题】未捕获的类型错误:无法读取 VueJs 中未定义的属性“get”【英文标题】:Uncaught TypeError: Cannot read property 'get' of undefined in VueJs 【发布时间】:2017-07-12 06:16:59 【问题描述】:

我有以下代码

<div id="vue-instance">

</div>

JS

var vm = new Vue(
  el: '#vue-instance',
  data: 
  ,
  ready:function()
    this.loadCountries();
  ,
  methods:
        loadCountries()
            this.$http.get('https://restcountries.eu/rest/v1/all',function(data)
                console.log(data);
          )
      
  
);

当我运行上面的代码时,它给了我以下错误

未捕获的类型错误:无法读取未定义的属性“get”

我有一把小提琴

JsFiddle

非常感谢您的帮助

【问题讨论】:

您是否安装并配置了 vue-resource? ***.com/questions/33247812/this-http-vuejs-not-set @AmreshVenugopal 如何在 jsFiddle 上安装它? Vue 资源已弃用。使用 Axios 【参考方案1】:

$http.get 来自Vue Resource。确保通过将vue-resource 添加到您的package.json 来正确地将其拉入,通过npm install 和代码安装它:

var Vue = require('vue');

Vue.use(require('vue-resource'));

要在小提琴中使用它,您必须在外部资源中添加 vue-resource cdn link 并在代码中使用以下代码:

Vue.use(VueResource)

查看工作演示:https://jsfiddle.net/49gptnad/187/

【讨论】:

如何在小提琴中做到这一点?我想做的只是一个 Ajax 调用还有其他方法吗? 尽管我看到错误消失了,但我仍然在控制台中看不到任何内容,并且我手动测试 url 工作正常 @Vikram 您的代码中还有一些错误,请参阅工作解决方案here。如有任何疑问,请告诉我。 如果您也可以更新答案中的链接,那就太好了。以便对其他人有用 @Saurabh 也许你可以帮助我。看看这个:***.com/questions/52529345/…【参考方案2】:

由于您没有 vue-resource 插件,因此您的 this.$http 未定义。 要在 js-fiddle 上添加 Vue 资源,请将 https://cdn.jsdelivr.net/g/vue@2.0.0-rc.4,vue.resource@1.0.0 添加到外部脚本部分。

【讨论】:

【参考方案3】:

要使用 $http,您必须先安装 vue-resource 中间件。您可以使用以下命令进行安装。

npm install vue-resource --save

安装完成后,转到您的 ma​​in.js 文件并导入 vue 资源,如下所示

import vueResource from 'vue-resource'

现在它被导入了,所以我们只需要调用 Vueuse 方法来使用这个中间件。您可以如下调用 use 方法。

Vue.use(vueResource)

【讨论】:

【参考方案4】:

我修复了以下模式的这个问题:

npm install bootstrap-vue --save
npm install vue-resource --save

在 main.js 中

import Vue from './bootstrap'
import BootstrapVue from 'bootstrap-vue'

Vue.use(BootstrapVue)

创建 bootstrap.js

import Vue from 'vue'
import VueResource from 'vue-resource'

Vue.use(VueResource)

export  Vue 

在 App.vue 中

this.$http.get('/api/module/all').then(...

【讨论】:

【参考方案5】:

截至 2019 年 10 月,我使用了另一种方式。我首先像这样使用 NPM 安装

npm install axios --save

我后来在下面使用了这个,并且在下面这样做消除了错误。

import  axios  from 'axios';

【讨论】:

以上是关于未捕获的类型错误:无法读取 VueJs 中未定义的属性“get”的主要内容,如果未能解决你的问题,请参考以下文章

未捕获的类型错误:无法读取切换功能中未定义的属性“prop”

未捕获的类型错误:无法读取 jquery 滑块中未定义的属性“addClass”

未捕获的类型错误:无法读取 AngularJS 和 D3 中未定义的属性“弧”

未捕获的类型错误:无法读取 React ajax 调用中未定义的属性“then”?

我该如何解决这个问题:未捕获的类型错误:无法读取 javascript 中未定义的属性“toString”

VueJS 3 + Laravel:未捕获的类型错误:无法读取未定义的属性“组件”