You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为什么axios连续调用6次post方法后就无法正常工作?

问题根因

你遇到的现象是浏览器同域名并发请求限制和Express路由未返回响应共同导致的:

  • 首先,Express的POST路由处理逻辑中,不管数据库操作成功/失败,都没有给前端返回任何响应,所有发出去的请求会一直处于pending挂起状态
  • 浏览器对同一个HTTP/1.1域名的并发请求上限默认是6个,前6个请求占满了可用连接后,后续的请求会被浏览器阻塞排队,不会发送到服务端,所以Node控制台不会打印后续的请求日志

代码问题修复

  1. 修正路由处理逻辑,补充响应返回和异常捕获:
router.post('/pageupdate/:_id',auth, async(req,res)=>{
    console.log("received request to update: ",req.body," id ",req.params);
    try {
      // 修复filter的取值错误:req.params是对象,需要取其中的_id属性
      const filter = { "_id": req.params._id };
      const update = { $set: req.body };
      // 注意Mongoose的findOneAndUpdate要开启new: true才会返回更新后的文档
      let updatedDoc = await Pages.findOneAndUpdate(filter, update, {new: true})
      // 给前端返回成功响应
      return res.status(200).json({code: 0, data: updatedDoc, msg: '更新成功'})
    } catch (err) {
      // 捕获异常,返回错误响应
      console.error('更新失败:', err)
      return res.status(500).json({code: 1, msg: '更新失败', error: err.message})
    }
});
  1. 可选优化:如果你的接口是频繁调用的拖拽坐标同步类接口,建议加防抖处理,避免短时间内发送大量无效请求。

验证方式

修复后再重复操作,就能看到:

  • 每次请求都会在React控制台打印返回结果/错误信息
  • 后续请求不会再被阻塞,Node控制台可以正常收到所有请求日志

内容的提问来源于stack exchange,提问作者John Shanks

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 09:36:06