我收到 Uncaught (in promise) 错误:请求失败,状态码为 401

Posted

技术标签:

【中文标题】我收到 Uncaught (in promise) 错误:请求失败,状态码为 401【英文标题】:I am getting Uncaught (in promise) Error: Request failed with status code 401 【发布时间】:2021-03-11 11:55:12 【问题描述】:

我得到了

“未捕获(承诺中)错误:请求失败,状态码为 401”

而我的其他 API(如 GETPUTPOSTJWT 工作正常。我想知道我哪里出错了?提前非常感谢,非常感谢任何帮助。再次感谢。

//JWT
function JWTAuthenticatToken(req, res, next) 

  const token = req.cookies.authcookie
  jwt.verify(token, process.env.JWT_TOKEN_SECRET, (err, userData) => 
    if (err) return res.sendStatus(401).json( error: "You have to be logged in!" )
    req.user = userData
    next()

  )


//client
const deletePost = async (id) => 
  const response = await Axios.delete('http://localhost:5000/api/posts/delpost',  postId: id ,  withCredentials: true )
  const deleteData = dbdata.map(item => 
    if (item._id == response.data._id) 
      return response.data
    
    else 
      return item
    

  )
  setDBData(deleteData)


  
//express
router.delete('/delpost', JWTAuthenticatToken, async (request, response) => 
  console.log(request.body)
  try 
    const post = await Post.findOne( _id: request.body.postId ).populate("postedby", "_id")
    if (post.postedby._id === request.user.id) 
      post.remove( _id: request.body.postId )
      return response.json( message: "deleted succesfully" )

    
   catch (error) 
    return response.json( message: error )
  

)

【问题讨论】:

您应该在 Axios.delete() 调用中将令牌添加到标头中,您的令牌在哪里? function JWTAuthenticatToken(req, res, next) const token = req.cookies.authcookie jwt.verify(token,process.env.JWT_TOKEN_SECRET,(err,userData) => if(err) return res.sendStatus(401).json(error:"你必须登录!") req.user = userData next() ) JWT 令牌适用于 put post 和 get,但不能删除 你能把它添加到你的问题中吗?这是您问题中非常重要的一部分 只需将其添加到您的删除中的 Axios.delete() 标题中 【参考方案1】:

最后我发现axios不支持delete。我改为发帖,它奏效了。

【讨论】:

【参考方案2】:

删除Router.delete。然后就可以了。

【讨论】:

以上是关于我收到 Uncaught (in promise) 错误:请求失败,状态码为 401的主要内容,如果未能解决你的问题,请参考以下文章

React Native: Uncaught (in promise) 错误: DeltaPatcher 在初始化时应该收到一个基础 Bundle

出现错误 - Uncaught (in promise) DOMException: play() failed 因为用户没有先与文档交互

React Uncaught (in promise) DOMException: play() 请求被新的加载请求中断

App.jsx:43 Uncaught (in promise) TypeError: this.state.concerts.map is not a function(...)

Uncaught (in promise) TypeError: initialData is null - 我的组件被包装在一个 div 中,但仍然出现错误

net::ERR_EMPTY_RESPONSE && Uncaught (in promise) TypeError: Failed to fetch