gpt4 book ai didi

javascript - XHR加载失败: POST on AJAX request (in React)

转载 作者:行者123 更新时间:2023-12-03 02:46:34 24 4
gpt4 key购买 nike

我不认为 React 与此有任何关系,但以防万一,这就是我正在处理的问题。在提交对/login 的 AJAX 请求。我正在尝试使用 Passport JS 创建登录路由,并且我知道该路由正在接收数据,因为它将 console.log 为 { email: 'myemail', password: 'mypassword' }typeof 返回对象。

this.handleLoginSubmit = () => {
let xml = new XMLHttpRequest();

xml.open("POST", "/login", true);
xml.setRequestHeader('Content-Type', 'application/json; charset=utf-8');
xml.send(JSON.stringify({email: this.state.email, password: this.state.password}));

xml.onreadystatechange = () => {
if(xml.readyState === 4) {
console.log('here')
console.log(xml.response);
}
}
}

编辑这是路线:

router.post('/login', emailToLowerCase, function(req, res, next) {
passport.authenticate('local', function(err, user, info) {
if (err) {
console.log('error')
return next(err);
}
if (!user) {
return console.log('no user!')
}
req.logIn(user, function(err) {
if (err) return next(err);
console.log('logging in')
return res.send(req.user)
});
})(req, res, next);
});

编辑这是表格:

<form id='login-form' className="small-form" className='nav-div' onSubmit={props.handleLoginSubmit}>
<div className='nav-div'>
<li className="nav-item">
<input type="email" required name="email" placeholder='Email' className='form-control' value={props.email} onChange={(e) => props.handleEmailChange(e.target.value)}/>
</li>
<li className="nav-item">
<input type="password" required name="password" placeholder='Password' className='form-control' value={props.password} onChange={(e) => props.handlePasswordChange(e.target.value)}/>
</li>
<li className='nav-item'>
<input type='submit' value='Login' />
</li>
</div>

最佳答案

在您的代码中:

if (!user) {
return console.log('no user!')
}

您没有向 UI 发送任何响应。不确定 next(err) 如何处理响应,但至少在找不到 user 的情况下,您希望将一些错误发送回客户端,例如:

if (!user) {
console.log('no user!');
return res.status( 404 ).json({ message: 'User not found' });
}

关于javascript - XHR加载失败: POST on AJAX request (in React),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48069885/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com