我正在尝试通过vue方法中的axios'帖子传递数据并获取错误:
“signinVue.js:60 Uncaught TypeError:无法读取未定义的属性'post'”
Vue脚本:
new Vue({
el:'#app',
data:{
email:'',
code:'',
},
methods:{
signin:function(){
console.log(this.email + ' ' + this.access);
let url = '../App/testConnection.php';
this.axios.post(url, {email:this.email, code:this.code})
.then((response) =>{
console.log(response);
})
.catch(function (error) {
console.log(error);
});
//console.log(this.email + ' ' + this.access);
//alert(this.email);
}
}
});
答案 0 :(得分:2)
Axios通常注册为全局变量,因此,而不是:
this.axios.post(url, {email:this.email, code:this.code})
你应使用:
axios.post(url, {email:this.email, code:this.code})
请注意this.
已消失。
注意:如果您想通过this.axios
真正使用Axios,则应将其添加到Vue
原型中,如下所示:
Vue.prototype.axios = window.axios; // this will enable this.axios inside Vue instances
new Vue({
// ...
但这是一种不好的做法。如果你要像这样向Vue原型添加属性,建议的方法是使用$
或_
前缀,例如:
Vue.prototype.$axios = window.axios; // this will enable this.$axios inside Vue instances
因为如果设置Vue.prototype.axios
,它可能与您命名为axios
的某些(不太可能,是)数据属性冲突,如:data:{email:'', code:'', axios: 'w00t'},
。