vue.js - 尝试将 Axios 响应中的值传递给 Vue 中的数据对象显然是愚蠢的错误
问题描述
我确信这非常简单,但是我无法将 Axios 请求的响应传递给数据对象以在其他地方使用。它目前只是返回我在数据对象中设置的默认值(在本例中为 null)。请帮忙!非常感谢。
我的 Vue 代码:
var thing = new Vue({
el: '#el',
data: {
message: null,
},
components: ...
template: ...
methods: {
thing() {
...
}
},
created() {
axios.get('/is-logged')
.then(response => {
if(response.data.status == 'error') {
this.message = response.data.message;
}
})
.catch(e => {
console.log(e);
});
},
mounted() {
if (!this.message) {
console.log(this.message);
this.thing();
}
}
});
我从 is_logged 得到的回复:
{"message":"You are not authorised","status":"error"}
解决方案
您在 AJAX 请求完成之前记录它的值(因为该组件将mounted
在您从请求中获得响应之前created
)。
试着把你的回调放在console.log(this.message)
最后。then
推荐阅读
- mysql - 2003,“无法连接到 MySQL 服务器。Docker
- java - 如何在 Proguard 中将 java.desktop 模块作为库 jar 包含在内
- windows - Jenkins 是否需要管理员权限才能作为 Windows 代理运行?
- python - Apache Beam 中的状态类
- node.js - 使用节点 js SOAP 或任何其他的 Soap API 调用?
- node.js - 用 post 设置 cookie 不让我登录
- ios - 专辑中的Livephoto问题:没有先播放片段
- c# - 如何将请求标头输出到C#中的字符串
- ios - 将 MKCircle 添加到地图上的注释 - 设置 CLLocationCoordinate2D 时出现问题
- jwt - 为什么要向 JWO 添加标头?