【问题标题】:Vue + Axios Post request response data returns undefinedVue + Axios Post 请求响应数据返回 undefined
【发布时间】:2019-06-20 02:00:18
【问题描述】:

在我的 vue js 项目中,我有一个服务文件夹,用于处理与服务器的交互。在我的服务文件夹中,我有一个处理身份验证的类 Auth.js

export default class Auth {
  login(email,password {
    let user = {email: email, password: password}
    axios.post("/login", user)
      .then(res => {
        return res.data
      })
  }
}

App.vue

  import Auth from './services/Auth'
  let auth = new Auth();
  export default {
    data: () => ({
      drawer: null,
      email: '',
      password: ''
    }),
    methods: {
      login() {        
        let user = auth.login(this.email, this.password)
        console.log(user) // returns undefined
      }
    }
  }

由于某种原因,用户未定义,但是当我检查 chrome 中的网络选项卡时,我可以看到当我向我的 Adonis 应用程序发送/api/register 的发布请求时返回的用户对象。请帮忙。

【问题讨论】:

  • 假设axios.post是异步函数,那么你应该使用await auth.login(this.email, this.password)来获取console.log中的东西
  • @AndrewShmig 我修改了,现在错误是await is a reserved keyword,我在我的App.vue中添加了async login(){..}仍然返回未定义

标签: vue.js axios adonis.js


【解决方案1】:

固定

Auth.js

export default class Auth {
    login(email,password {
        let user = {email: email, password: password}
        return axios.post("/login", user)
    }
}

App.vue

import Auth from './services/Auth'
let auth = new Auth();
export default {
    data: () => ({
        drawer: null,
        email: '',
        password: ''
    }),
    methods: {
        login() {        
            auth.login(this.email, this.password)
                .then(res => console.log(res.data))
        }
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-18
    • 1970-01-01
    • 1970-01-01
    • 2018-10-11
    • 1970-01-01
    • 2020-08-04
    • 1970-01-01
    • 2018-12-03
    相关资源
    最近更新 更多