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

Windows Server中Axios请求返回JSON截断报unexpected end of JSON错误求助

解决Windows Server环境下Axios请求JSON截断及解析错误的问题

先贴一下你的代码方便参考:

var authOptions = { method: "POST", url: url, data: options.data, headers: options.headers, json: true };
return axios(authOptions)
.then(function(response){ console.log(response.data); })
.catch(function(error){ console.log(error); });

这种在本地正常、Windows Server上出现JSON截断+unexpected end of JSON错误的情况,我之前在类似环境里碰到过几次,大概率和传输编码、服务器配置或者响应处理逻辑有关,给你几个实用的排查和解决方向:

  • 强制指定响应编码与禁用压缩
    Windows Server默认字符编码常和本地不一致,加上部分反向代理的压缩逻辑可能出问题,容易导致响应截断。可以在axios配置里显式指定编码并禁用压缩:

    var authOptions = { 
      method: "POST", 
      url: url, 
      data: options.data, 
      headers: {
        ...options.headers,
        'Accept': 'application/json; charset=utf-8',
        'Accept-Encoding': 'identity' // 禁用压缩,避免解压不完整
      },
      responseType: 'text', // 先以文本形式获取完整响应
      transformResponse: [function (data) {
        // 手动清理并解析JSON
        return JSON.parse(data.trim());
      }]
    };
    
  • 检查IIS的响应限制与压缩配置
    如果你的应用部署在IIS上,默认的响应大小限制或动态压缩可能是元凶:

    1. 打开IIS管理器,进入对应站点的「请求筛选」功能
    2. 切换到「响应头」标签,调大「最大内容长度」(比如设为10485760,即10MB)
    3. 临时关闭「动态内容压缩」测试,部分旧版本IIS的压缩算法处理大JSON时会出现分片异常
  • 修改响应处理逻辑,先验证原始数据
    有时候axios自动解析JSON会提前终止,你可以先获取完整响应文本再手动解析,同时在报错时打印原始内容方便排查:

    return axios(authOptions)
    .then(function(response){ 
      // 先打印原始响应,确认是否完整
      console.log('原始响应文本:', response.data);
      return JSON.parse(response.data.trim());
    })
    .catch(function(error){ 
      if (error.response) {
        console.log('截断的响应内容:', error.response.data);
        console.log('响应状态码:', error.response.status);
      }
      console.log(error); 
    });
    
  • 排查服务器防火墙或代理拦截
    Windows Server上的防火墙、网关或代理软件(如ISA Server)可能会拦截或修改HTTP响应,导致内容截断。可以临时关闭防火墙测试,或者确认代理规则允许完整传递响应内容。

我之前碰到的类似问题,最后是关闭IIS动态压缩就解决了,你可以先从这个方向入手试试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:48:37