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

FullCalendar 5.10.1使用JSON feed无返回结果时解析错误如何处理

问题根因

无匹配节日事件时,你的XModPro Feed接口返回了非JSON格式的空内容,而非FullCalendar期望的空数组[],导致JSON解析失败触发failure回调。优先在接口侧修复,前端兜底作为备选方案。


方案1:后端Feed修复(推荐)

你当前使用的XModPro JsonFeed 控件在SQL查询结果为空时,默认不会输出任何内容,导致返回值不是合法JSON结构。仅需要给JsonFeed标签增加空结果返回配置即可解决:

<xmod:JsonFeed runat="server" EmptyResultText="[]">

增加该属性后,就算SQL查不到对应节日的事件,接口也会返回合法的空数组[],FullCalendar可以正常解析,不会触发报错,空日历也能直接加载,无需额外修改前端代码。


方案2:前端临时兜底

如果暂时无法修改后端Feed代码,可以把事件源从默认的JSON Feed配置改成自定义events函数,手动处理请求逻辑,兼容空响应场景,替换你原有eventSources配置块即可:

eventSources: [
  {
    // 用自定义events方法替代默认的JSON Feed配置,自行处理请求逻辑
    events: function(info, successCallback, failureCallback) {
      $.ajax({
        url: '/DesktopModules/XModPro/Feed.aspx',
        method: 'POST',
        dataType: 'json',
        data: {
          pid: '0',
          xfd: 'Events_FullCalendar_FestivalID',
          FestivalID: '[[FestivalID]]',
          start: info.startStr,
          end: info.endStr
        },
        success: function(res) {
          // 返回结果不是数组的话统一兜底为空数组
          successCallback(Array.isArray(res) ? res : []);
        },
        error: function(xhr) {
          // 仅当接口真的报错(非200状态码)时才弹出错误提示
          if(xhr.status !== 200) {
            alert('获取事件数据失败');
            failureCallback(xhr);
          } else {
            // 200状态但响应内容为空时,直接返回空数组
            successCallback([]);
          }
        }
      })
    },
    color: '#a1a535',
    textColor: 'white'
  }
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 17:45:04