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

React前端向Node.js后端传输超31k字符数据失败求助

解决React前端Jodit大文本无法传输到Node.js后端的问题

核心问题排查与解决方案:

  • 后端Body解析器限制
    Express默认的请求体解析器对数据大小有默认限制,若手动设置过小会直接截断大文本。修改解析器配置,放宽请求体大小限制:

    // Node.js/Express后端代码
    const express = require('express');
    const app = express();
    
    // 允许最大50MB的JSON请求体,可按需调整
    app.use(express.json({ limit: '50mb' }));
    // 若使用表单提交,同步调整urlencoded配置
    app.use(express.urlencoded({ limit: '50mb', extended: true }));
    
  • 请求方式错误(GET截断)
    如果前端用GET请求发送文本,浏览器和服务器会限制URL长度,必然无法传输大文本。强制改用POST请求:

    // React前端Axios请求示例
    import axios from 'axios';
    
    const saveLargeContent = async (editorContent) => {
      try {
        await axios.post('/api/save-text', { content: editorContent });
      } catch (err) {
        console.error('保存失败:', err);
      }
    };
    
  • 数据库字段长度限制
    若数据库字段用了VARCHAR且设置了32k左右的长度,会直接截断超量文本。将字段类型改为大文本类型:

    -- MySQL示例:修改为支持4GB内容的LONGTEXT类型
    ALTER TABLE your_table MODIFY COLUMN content LONGTEXT;
    
  • Jodit内容获取不完整
    确认编辑器内容获取方式正确,避免使用截断式方法:

    // React中获取Jodit完整内容
    const editorInstance = yourJoditRef.current;
    const fullContent = editorInstance.value; // 直接取编辑器完整值
    
  • 前端请求配置限制
    若用Axios,检查是否设置了过小的内容长度限制,同步放宽:

    // Axios全局配置
    axios.defaults.maxContentLength = 50 * 1024 * 1024; // 50MB
    axios.defaults.maxBodyLength = 50 * 1024 * 1024;
    

内容的提问来源于stack exchange,提问作者jitender verma

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 00:52:17