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

如何通过Ocelot网关传递Kendo Grid的DataSourceRequest对象

Ocelot网关下Kendo DataSourceRequest参数传递问题

我有一套通过Ocelot配置的API网关,希望向API发送携带Kendo对象的请求,后端可直接接收为Kendo DataSourceRequest 类型。此前我在Angular与.NET Core API的组合项目中已成功实现该功能,运行正常,但在当前项目中不知道如何通过Ocelot完成该需求,相关代码如下:

后端API接口

[HttpGet]
public ActionResult User_Read([DataSourceRequest] DataSourceRequest request)
{
    var data = _unitOfWork.Repository<User>().GetAll();
    return Ok(data.ToList().ToDataSourceResult(request, ModelState));
}

Ocelot原有配置

{
  "DownstreamPathTemplate": "/api/auth/User_Read/{everything}",
  "DownstreamScheme": "http",
  "DownstreamHostAndPorts": [
    {
      "Host": "localhost",
      "Port": 9001
    }
  ],
  "UpstreamPathTemplate": "/User_Read/{everything}",
  "UpstreamHttpMethod": [ "get" ]
}

客户端请求代码

read: function (e) {
  if (thisObject.defaultFilter) {
    if (e.data.filter) {
      var filters = e.data.filter.filters;
      var existFilter = filters.filter(function (obj) {
        if (obj.field == thisObject.defaultFilter.field) return true;
      }).lenght > 0;
      if (!existFilter) e.data.filter.filters.push(thisObject.defaultFilter);
    }
    else {
      e.data.filter = { logic: "and", filters: [thisObject.defaultFilter] }
    }
  }
  const params = `${toDataSourceRequestString(e.data)}`;
  // 数据源读请求
  thisObject.http.get(thisObject.readUrl + "?" + params).subscribe((res) => {
    e.success(res);
  });
}

我已自行定位到问题出在Ocelot配置上,后续将给出具体解决方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 10:24:04