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

Angular中Fetch API返回304 Not Modified问题求助

排查Angular调用.NET API失效(后端对象结构变更后)

先给你的fetch代码补上错误捕获逻辑,先确认是请求异常还是JSON解析失败:

fetch(URL) 
  .then(response => {
    // 先校验HTTP状态码
    if (!response.ok) {
      throw new Error(`请求失败!状态码: ${response.status}`);
    }
    return response.json();
  })
  .then(data => {
    console.log(data);
  })
  .catch(error => {
    console.error('请求或解析出错:', error);
  });

接下来按以下方向逐一排查:

  • 检查后端返回的JSON合法性:在浏览器开发者工具的Network标签里,直接查看API返回的Response内容,确认是不是标准JSON格式。后端改结构后容易出现循环引用、未正确序列化的类型(比如.NET里未配置的DateTime、匿名类),导致前端解析失败。
  • 对齐前后端数据结构定义:如果前端用了TypeScript接口约束接收数据,后端修改字段名、类型(比如数字转字符串、可选字段变必填)后,会导致数据无法正常映射。把前端接口和后端新的对象结构逐一比对,修正不匹配的地方。
  • 验证CORS配置:后端调整结构时可能误改了CORS策略(比如允许的请求头、方法范围),查看Network里的Response Headers,确认Access-Control-Allow-Origin等字段是否符合预期,有没有CORS相关报错。
  • 检查.NET序列化配置:如果后端切换了序列化库(比如Newtonsoft.Json和System.Text.Json),或者修改了序列化选项(比如大小写转换、null值处理),会导致前端拿到的字段名和预期不符(比如后端返回UserName,前端预期userName)。去Startup/Program.cs里核对序列化配置,确保和前端字段命名规则一致。
  • 排查Angular拦截器:如果项目里有HTTP拦截器,可能对旧数据结构有依赖,后端改结构后拦截器处理失败导致数据无法传递。暂时禁用拦截器测试,看请求是否恢复正常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 02:12:03