ajax创建http请求失败,XHR加载失败:在AJAX请求上发布POST(在React中)(示例代码)...

我不认为React与此有任何关系,但为了以防万一,这就是我正在工作的。我在向/ login提交AJAX请求时收到错误XHR failed loading: POST。我正在尝试使用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);

});

编辑这是表格:

props.handleEmailChange(e.target.value)}/>

props.handlePasswordChange(e.target.value)}/>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
xhr timeout: undefinedms 是指 XMLHttpRequest(即XHR)在请求超时时所显示的错误提示信息。XHR是一种用于发送HTTP请求并接收服务器返回数据的技术,通常用于前端与后端之间的数据交互。 当我们发送一个XHR请求时,可以设置一个超时时间。如果在指定的时间内未能收到服务器的响应,就会触发超时机制,XHR对象会抛出一个错误,并在错误信息显示 "xhr timeout: undefinedms"。 这个错误提示的 "undefinedms" 表示未定义超时时间。一般来说,我们发送XHR请求时可以设置一个超时时间,单位是毫秒。如果超过了这个时间仍然没有收到响应,就会触发超时错误。但是在这个错误提示,超时时间未被指定,所以显示的是 undefinedms。 出现这个错误可能有以下几个原因: 1. 在发送XHR请求时,没有设置超时时间。 2. 设置了超时时间,但是超时时间的值被错误地指定为 undefined。 3. 服务器响应时间过长,超过了我们所设置的超时时间。 解决这个问题的方法是: 1. 在发送XHR请求时,确保设置了正确的超时时间,避免超时时间的值设为 undefined。 2. 如果确实需要设置超时时间,可以适当增加超时时间,以便等待服务器响应的时间延长。 3. 检查服务器的响应时间是否过长,如果是,可以优化服务器端的代码或者调整服务器的配置,以缩短响应时间。 总之,xhr timeout: undefinedms 表示XHR请求发生超时错误,并且超时时间未被定义。需要在发送XHR请求时正确设置超时时间,或者调整服务器响应时间来解决这个问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值