【问题标题】:different server response in node js and react节点js中的不同服务器响应并做出反应
【发布时间】:2020-01-21 00:05:45
【问题描述】:

您好,我的服务器上有一个简单的电子邮件检查路线,以了解电子邮件是否已注册。

这是我在 nodejs 中这条路线上的代码:

    router.post('/mailCheck', async (req, res) => {
  let user = await User.findOne({ email: req.body.email });
  if (user) return res.status(400).send('User Already Registered.');
  if (!user)return res.status(200).send('Address Can Be Registered.');
});

当我使用邮递员发送请求时,我得到了正确的答案,但是当我尝试在 react 中使用 axios 发送请求时,我总是得到状态 200,即使电子邮件已被另一个帐户使用,状态 400 也永远不会发生 这是反应中的代码

let st = await axios.post(this.config.api_mailCheck,JSON.stringify({email : e.target.value}))
        console.log(st);
        if(st.status===200){
                this.setState({
                    code block to next step 
                })
        }
        else {
            this.setState({
                isDupEmail : true
            })
        }

我已经比较了 axios 和 postman 上的两个请求体都是一样的

在浏览器上禁用 cors 以进行跨域访问

【问题讨论】:

    标签: node.js reactjs


    【解决方案1】:

    我相信这是因为您正在尝试对您的帖子数据进行字符串化。这对于 axios 不是必需的,并且服务器收到的电子邮件格式可能与您预期的不同,因此找不到匹配项。

    试试这个:

    let st = await axios.post(this.config.api_mailCheck, {email : e.target.value})
            console.log(st);
            if(st.status===200){
                    this.setState({
                        code block to next step 
                    })
            }
            else {
                this.setState({
                    isDupEmail : true
                })
            }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-09
      • 2019-04-04
      • 2022-11-12
      • 2023-01-06
      • 2020-08-05
      • 1970-01-01
      • 2021-02-07
      • 1970-01-01
      相关资源
      最近更新 更多