我有一个用javascript编写的函数来检查登录详细信息是否正确。 这是功能: -
login:(phone,key)=>{
const regId=md5(phone);
localStorage.setItem('regId',regId);
return fetch(
`${serverAddress}/api/account/login?phone=${phone}&key=${key}®Id=${regId}&appType=M`,
{
method:'POST',
accept:'application/json',
}
).then((res)=>{
if(res.ok){
return res.json();
}else{
throw new Error('Fetch Error');
}
});
},
此功能写在客户端文件中,我在路径中访问该文件: -
class Login extends Component{
constructor(){
super();
this.state = {
redirect:false,
email: "",
password: ""
}
}
checker(){
var phone=8724055040;
var pass=9435363285;
Client.login(phone,pass).then(res=>{
this.setState({
redirect:true
});
})
}
render(){
if(this.state.redirect){
return(
<div>HEY</div>
)
}
else{
return(
<form>
Phone: <input type="text" name="pno"></input><br></br>
Password: <input type="text" name="pass"></input><br></br>
<input type="submit" value="Submit" onClick={this.checker}></input>
</form>
);
}
}
}
export default Login
我尝试做的是尝试使用setState在输入的凭据正确的情况下重新渲染组件。但如果他们错了,我也想得到上面的登录功能中的错误。现在发生的事情是我在我的网址栏中得到这个链接,没有任何反应: -
http://localhost:3000/login?pno=8724055040&pass=9435363285
如何解决这个问题,让它成为我想要的东西?
答案 0 :(得分:0)
尝试以下方法来捕获异常处理并使用以下链接 https://www.tjvantoll.com/2015/09/13/fetch-and-errors/
fetch("http://httpstat.us/500")
.then(function() {
console.log("ok");
}).catch(function() {
console.log("error");
});