我如何阻止 ajax 回调函数处理来自服务器的 res.redirect() 响应 我已经被困在这里一天了+如果你知道我将如何解决这个问题,为了我的心理健康帮助“哈哈

问题描述

我有一个项目,一个简单的登录表单连接到 nodejs,它连接到作为数据库的 MongoDB。

与此问题相关

这是我的客户请求

 // *the myModel is a bootstrap function that is used to notify users for error* 
 const myModel = new bootstrap.Modal(document.querySelector('.modal'),{
            focus : true
        })
        document.querySelector("form").addEventListener("submit",function(e){
          e.preventDefault()
          data = {
            username : document.forms[0].username.value,password : document.forms[0].password.value
          }
          fetch("/login",{
            method: "POST",headers : { "content-Type": "application/json" },body : JSON.stringify(data)
          }).then(async(response)=>{
            data = await response.json()
            if(data.err){
              console.log(data.redirect)
            document.querySelector(".modal-body").innerText = data.err
            myModel.show() 
            }else{
              window.location.replace(data.redirect)
            }
         
          })
          .catch(err=>{
            document.querySelector(".modal-body").innerText = err.message
            myModel.show()
          })
        })

这是我的服务器端代码/响应

.post(function(req,res){
    console.log(req.body)
    if(req.body.username.trim() && req.body.password.trim()){
        const data = req.body
        userCollection.findOne({username:data.username},function(error,back){
            if(error){
                console.log(error.message)
            }else{
                if(back){
                    console.log(back)
                    if(back.password === data.password){
                      res.redirect("/profile")
                    }else{
                        res.json({err : "password or username wrong,try again"})
                        res.end()
                    }

                }
                else{
                    console.log("no user found,check your inputs again")
                    res.json({err : "no user found,check your inputs again"})
                   res.end()
                 }
            }
        })

    }else{
        res.json({err:"username or password empty"})
    }

一切正常,除非找到用户并且密码匹配并且我正在尝试重定向用户,客户端请求 .catch 不断向我发送错误 "unexpected token 但如果我将 res.redirect 更改为 res.json("your account has been found") 则它可以正常工作而不会出现任何错误

我已经被困在这里一天了+如果你知道我将如何解决这个问题,为了我的心理健康帮助“哈哈

~~

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)