Vuejs Axios请求

时间:2020-03-09 08:35:43

标签: ruby-on-rails vue.js axios

前锋

 data() {
    return {
      user_data: [],
      user_id: '',
    };
  },
created() {
    this.getUserData();
    const decode = jwtDecode(localStorage.auth_token);
    this.user_id = decode.user_id;
  },
methods: {
getUserData() {
      axios.get(`http://localhost:3000/api/v1/users/${this.user_id}`) // Gets an specif book
        .then((response) => {
          this.user_data = response.data;
        });
    },
}

后端显示方法

def show
 user = User.find(params[:id])
   render json: user
 end

路线

api_v1_user GET    /api/v1/users/:id(.:format) 

在上面的代码中,我从令牌中获取用户ID,并通过方法getUserData()从数据库中获取用户信息。但是,当我发出请求时,并没有带来特定用户,而是给了我所有注册用户。 P.s:我尝试在我的getUserData方法中打印用户ID,以查看ID是否在变量user_id中,并且工作正常,但我的请求无法获取! 有人能帮我吗?

1 个答案:

答案 0 :(得分:1)

在上面的代码中,我从令牌中获取用户ID,并在我的方法getUserData()中从数据库中获取用户信息

代码中的顺序相反,它向http://localhost:3000/api/v1/users/发出请求而没有用户ID。

它应该是:

const decode = jwtDecode(localStorage.auth_token);
this.user_id = decode.user_id;
this.getUserData();

如果有可能没有用户ID,则不应调用getUserData