Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vue.js 错误:在Vue使用Rails Api时,接收到数据,但Vue可以';看不懂_Vue.js_Vuex_Rails Api - Fatal编程技术网

Vue.js 错误:在Vue使用Rails Api时,接收到数据,但Vue可以';看不懂

Vue.js 错误:在Vue使用Rails Api时,接收到数据,但Vue可以';看不懂,vue.js,vuex,rails-api,Vue.js,Vuex,Rails Api,我有一个rails api连接到VueJS前端。我正在登录工作。当我输入凭据并单击“登录”时,将调用登录方法,在“网络”选项卡中,我会看到响应,但Vue会抛出错误: 登录错误:TypeError:无法读取未定义的属性“auth\u token” 以下是返回的数据,如“网络”选项卡中所示: {user: {id: 1, email: "test@test.ca",…},…} auth_token: "eyJhbGciOiJIUzI1NiJ9.eyJleHAiOjE2M

我有一个rails api连接到VueJS前端。我正在登录工作。当我输入凭据并单击“登录”时,将调用登录方法,在“网络”选项卡中,我会看到响应,但Vue会抛出错误:

登录错误:TypeError:无法读取未定义的属性“auth\u token”

以下是返回的数据,如“网络”选项卡中所示:

{user: {id: 1, email: "test@test.ca",…},…}
auth_token: "eyJhbGciOiJIUzI1NiJ9.eyJleHAiOjE2MDYwNDU3ODgsImlzcyI6Imlzc3Vlcl9uYW1lIiwiYXVkIjoiY2xpZW50IiwidXNlcl9pZCI6MX0.ZLlKtsdyqS-qFwJljvDsQeBxOJyU756q38-cX6MN_2Q"
user: {id: 1, email: "test@test.ca",…}
created_at: "2020-11-10T22:37:01.775Z"
email: "test@test.ca"
id: 1
password_digest: "$2a$12$bVmG1cvMidLice0Qcn8sBu36/F1HxhY0NeHT5gRKcAoV8u5Lk5wx6"
updated_at: "2020-11-10T22:37:01.775Z"
以下是我的登录方法:

   async signin () {
  try {
    console.log('base rute is: ', process.env.VUE_APP_ROOT_API)
    const response = await Api.post('users/login', {
      user: {
        email: this.email_input,
        password: this.password
      }
    })
    const loggedUser = response.data
    console.log('this is login response data: ', loggedUser)
    this.$store.commit('set_token', this.loggedUser.auth_token) [THIS IS WHERE THE ERROR IS THROWN]
    this.$store.commit('set_user', this.loggedUser.user)
    localStorage.setItem('token', this.loggedUser.auth_token)
    localStorage.setItem('user', JSON.stringify(this.loggedUser.user))
    this.$emit('authenticated', true)
  } catch (err) {
    console.log('login error: ', err)
  }
}
}


我真的不确定问题出在哪里。

如果它在数据中,你会称它为.loggedUser。但你已经把它设为常数了

async signin () {
  try {
    console.log('base rute is: ', process.env.VUE_APP_ROOT_API)
    const response = await Api.post('users/login', {
      user: {
        email: this.email_input,
        password: this.password
      }
    })
    const loggedUser = response.data
    console.log('this is login response data: ', loggedUser)
    this.$store.commit('set_token', loggedUser.auth_token) 
    this.$store.commit('set_user', loggedUser.user)
    localStorage.setItem('token', loggedUser.auth_token)
    localStorage.setItem('user', JSON.stringify(loggedUser.user))
    this.$emit('authenticated', true)
  } catch (err) {
    console.log('login error: ', err)
  }
  }

您将数据放在
loggedUser
上,然后尝试在
this.loggedUser