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

相同代码在不同服务器上jQuery Ajax返回结果不一致排查

问题排查方案

从你描述的情况来看,后端代码逻辑已排除(硬编码返回静态内容仍异常),且本地访问服务器端点也出现问题,说明问题肯定在服务器层面的HTTP响应处理配置,和代码、跨域无关。下面是具体的排查方向:

1. 检查IIS请求过滤是否拦截响应

  • 打开异常服务器的IIS管理器,找到对应站点的「请求过滤」:
    • 查看「HTTP响应头」标签,确认没有移除Content-Type或限制响应长度的规则;
    • 查看「规则」标签,排查是否存在针对api/news/GetVarsDue路径的拦截规则,导致响应被截断。

2. 排查.NET Framework的响应压缩配置

  • 打开站点的web.config,检查<httpCompression>和<urlCompression>配置:
    <system.webServer>
      <!-- 临时关闭动态压缩测试 -->
      <urlCompression doStaticCompression="true" doDynamicCompression="false" />
    </system.webServer>
    
    错误的压缩规则可能导致静态HTML响应被压缩后无法正常解析,最终让jQuery拿到空数据。

3. 检查URL重写规则是否篡改响应

  • 查看IIS的「URL重写」模块,排查是否存在规则将API的响应状态码强制改为200,同时清空响应内容——你修改后端返回202但仍收到200,大概率是重写规则在生效。

4. 排查全局过滤器或自定义Handler

  • 检查项目web.config中是否加载了额外的<modules>或<httpHandlers>,或是项目内的全局ActionFilterAttribute,这些组件可能在异常服务器上被配置为拦截并清空响应。可临时注释自定义模块后再测试。

5. 排除服务器安全软件拦截

  • 部分服务器安装的防火墙、WAF或杀毒软件会拦截带HTML标签的响应,甚至自动清理“可疑”内容。可临时关闭这类软件测试,确认是否是拦截导致的异常。

快速验证小技巧

在异常服务器上创建一个最简ASPX页面,直接输出静态内容:

<%@ Page Language="VB" %>
<% Response.Write("<label>helloBrad</label>") %>

如果这个页面也无法正常输出内容,基本可以确定是服务器级别的HTTP响应拦截问题;若能正常输出,则再回头排查Web API的路由或消息处理器配置。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 13:35:00