首页 > 解决方案 > axios 根据用户数据获取请求失败

问题描述

我已经用 nuxtjs & django 建立了一个身份验证系统。但是,我完全不了解 nuxtjs

      <template>
  <div>
     {{ this.$auth.$storage.state.user.email }}
  </div>
</template>

<script>
import axios from 'axios';
export default {
}
            axios.get('/api/v1/is-success-or-not?email='+this.$auth.$storage.state.user.email)
            .then((response) => {
            if(response.data === "True") {
            console.log("Player is success")
            $nuxt.$router.push('/schedule')
            
            }
           
            })



            axios.get('failureornot?email='+this.$auth.$storage.state.user.email)
            .then((response) => {
            if(response.data > 3) {
            console.log("failure")
            $nuxt.$router.push('/failure')
            }
            })
        </script>

这是我的代码,我的电子邮件显示为 {{ this.$auth.$storage.state.user.email }}

但是当我尝试根据用户调整获取请求时,我收到此错误 Cannot read properties of undefined (reading '$auth')

我不明白,因为如果我可以打印值,显然定义了 $auth

标签: pythondjangovue.jsnuxt.js

解决方案


您在脚本中缺少整个挂载函数

<template>
  <div>
    {{ this.$auth.$storage.state.user.email }}
  </div>
</template>

<script>
import axios from "axios";

export default {
  mounted() {
    axios
      .get(
        "/api/v1/is-success-or-not?email=" +
          this.$auth.$storage.state.user.email
      )
      .then((response) => {
        if (response.data === "True") {
          console.log("Player is success");
          $nuxt.$router.push("/schedule");
        }
      });

    axios
      .get("failureornot?email=" + this.$auth.$storage.state.user.email)
      .then((response) => {
        if (response.data > 3) {
          console.log("failure");
          $nuxt.$router.push("/failure");
        }
      });
  },
};
</script>

推荐阅读