首页 > 解决方案 > 为什么我收到 TypeError: Failed to fetch?

问题描述

尝试从 React 应用程序发送数据时,我得到了一个获取的错误类型。

请注意,我正在使用核心。它在客户端的本地主机上运行良好,而不是在在线托管时运行良好。

注意:当使用这样的邮递员时,我会从 json 获得结果:

{
"success":"true",
"ID":"token"
}

这是 expressjs 中的后端代码源:


router.post("/sickers/user/login/", cors(), (req, res) => {

    var values = req.body;
    var pass = values.password;
    var email = values.email;
    if (pass !== null || pass !== "") {
        try {

            con.query("SELECT Password ,ID FROM `sickers` WHERE Email='" + email + "'", function(err, rows, field) {
                if (err) {
                    console.log(err);
                    res.send("an error detected try later");
                } else {
                    try {
                        if (pass == rows[0].Password) {
                            //create the signed function
                            jwt.sign(rows[0].ID, "secretkey", (err, token) => {
                                    res.json({ success: "true", ID: token })
                                })
                                //session.session( )
                        } else {
                            res.json({ success: "false" });
                        }
                    } catch {
                        res.json({ success: "false" });
                    }

                }
            });
        } catch (e) {
            res.json({ success: "false" });
        }
    }
});

客户端方法是:


//submit values
const submithandler=async (e)=> {
   e.preventDefault();
     try{
         console.log('start')
            await fetch('url/api/sickers/user/login/',{
                      method:'post',
                      headers:{
                             'Accept': 'application/json',
                              'Content-Type': 'application/json',
                               },
                         body:JSON.stringify({
                                     password:password,
                                     email:email
                                            })
                               })
                                  .then(response => 
                                    {
                                console.log("response");
                            response.json().then(data => 
                                {
                                    console.log(data);
                               if(data.success=="true")
                                {
                            sessionStorage.setItem('ID',data.ID);
                            window.location.reload();
                            seterr("");
                                 }
                        else
                                 {
                                  seterr("try again");
                                 }
                             });
                          });
                 }
                 catch(e)
                 {
                   console.log(e)
                 }
}


我在这里想念什么吗?

提前致谢。

标签: node.jsreactjsapiexpresscors

解决方案


我之前通过将核心添加到服务器上的 .htaccess 或将整个项目的后端和前端托管到同一台服务器中来解决了这个问题。


推荐阅读