首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >[object%20 object]/undefined中的url

[object%20 object]/undefined中的url
EN

Stack Overflow用户
提问于 2022-09-01 07:02:00
回答 1查看 130关注 0票数 -1

AuthService.js

代码语言:javascript
运行
复制
import axios from 'axios';

const GET_AUTH_API_BASE_URL = "http://localhost:8087/auth";

class AuthService {

    login(user){
        return axios.post(GET_AUTH_API_BASE_URL+"/login",user);
    }
    getRole(userName,password){
        
        return axios.get(GET_AUTH_API_BASE_URL+"/role/"+userName+"/"+password);
        
    }
}
export default new AuthService();

LoginComponent.js

代码语言:javascript
运行
复制
class LoginUserComponent extends Component {
  constructor(props) {
    super(props);

    this. State = {
      userName: "",
      password: "",
    };
    this.changeHandler = this.changeHandler.bind(this);
    this.login = this.login.bind(this);
  }

  changeHandler(event) {
    this.setState({ [event.target.name]: event.target.value });
    // console.log(this.state.user.userName);
  }

  login(event) {
    let userDet = {
      userName: this.state.userName,
      password: this.state.password,
      
    };
    console.log(userDet);
    AuthService.login(userDet).then(
      (res) => {
        sessionStorage.setItem("token", res.data);
        
        AuthService.getRole(userDet).then((res) => {
          sessionStorage.setItem("role", res.data);
        });
        
        if (sessionStorage.getItem("role") === "Admin") {
          console.log("Admin");
          this.props.navigate("/employees");
        }
        if (sessionStorage.getItem("role") === "User") {
          console.log("User");
          this.props.navigate("/add-employee");
        }
        
      },
      (error) => {
        const resMessage =
          (error.response &&
            error.response.data &&
            error.response.data.message) ||
          error.message ||
          error.toString();
        alert(resMessage);
      }
    );
    event.preventDefault();
  }

RegisterComponent.js

代码语言:javascript
运行
复制
class RegisterUserComponent extends Component {
    
    constructor(props) {
      super(props)
    
      this.state ={
            
            userId:0,
            userName:'',
            password:'',
            role:{
                roleId:0,
                roleName:''
            }
        }
      this.changeHandler=this.changeHandler.bind(this);
    }
    changeHandler(event){

        this.setState({[event.target.name]:event.target.value});
        // console.log(this.state.user.userName);
    }
    submitData=(event)=>{
        console.log(this.state.user);
        let userDet={
            userId:this.state.userId,
            userName:this.state.userName,
            password:this.state.password,
            role:{
                roleId:this.state.roleId,
                roleName:this.state.roleName
            }
        }
        console.log(userDet);
        // axios.defaults.headers.post['Access-Control-Allow-Origin'] = '*';
        axios.post('http://localhost:8087/auth/users',userDet);
        event.preventDefault();
        this.props.navigate("/")
    }

我可以注册一个用户的角色,如admin,user.But,当我登录注册的用户时,我会得到一个axios错误作为http://localhost:8087/auth/role/[object%20Object]/undefined。我的令牌存储在会话存储中,但角色(键、值)不存储。我现在添加了我的注册组件。请纠正

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-01 07:10:03

问题

getRole采用两个参数,userNamepassword

代码语言:javascript
运行
复制
getRole(userName, password) {
  return axios.get(GET_AUTH_API_BASE_URL + "/role/" + userName + "/" + password);
}

但是UI传递的是一个对象。

代码语言:javascript
运行
复制
let userDet = {
  userName: this.state.userName,
  password: this.state.password,
};

...

AuthService.getRole(userDet)
  .then((res) => {
    sessionStorage.setItem("role", res.data);
  });

userName是一个对象,passwordgetRole函数中是未定义的。

解决方案

通过两个args。

代码语言:javascript
运行
复制
const { userName, password } = this.state;

...

AuthService.getRole(userName, password)
  .then((res) => {
    sessionStorage.setItem("role", res.data);
  });
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73565352

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档