gpt4 book ai didi

vuejs2 - 使用 vue 在 axios 响应后重定向

转载 作者:行者123 更新时间:2023-12-02 05:47:34 26 4
gpt4 key购买 nike

好的,所以我有以下方法。基本上我正在调用 API 后端,发布用户名和密码,如果这些通过,在响应中,服务器向我发送 200 状态。我想要做的是在响应中,在获得状态后,运行 if/else,因此如果状态为 200,则重定向,否则显示错误消息。每次我尝试使用'this.$router.push('/any route here')',

我收到一个错误:'homepage.vue?3ec6:72 Uncaught (in promise) TypeError: Cannot read property '$router' of undefined'。

但是如果我在方法的顶部使用相同的路由,在 axios 调用之外,它工作正常。

那么我在这里错过了什么?

                hero_login: function(event){
event.preventDefault();

axios.post('API call here',
{
service:'client',
user: this.user_email,
password: this.user_password,
json:true
})
.then(function(response){
const status =
JSON.parse(response.data.response.status);
console.log(status);
})
}

最佳答案

您必须定义 this在 axios 方法之外,因为 this里面的 axios 指的是 axios 对象,而不是 vue 组件:

hero_login: function(event) {
let self = this;

event.preventDefault();

axios.post('API call here',
{
service:'client',
user: this.user_email,
password: this.user_password,
json:true
})
.then(function(response){
const status =
JSON.parse(response.data.response.status);

//redirect logic
if (status == '200') {
self.$router.push('/any route here');
}
})
}
}

关于vuejs2 - 使用 vue 在 axios 响应后重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48747279/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com