我正在使用Kendo UI for jQuery Gird从ASP.NET Web API中获取一些数据。数据按预期加载,并且一切正常。但是,自从我启用服务器端过滤(这仍然是前面的问题here所要解决的问题)后,每当应用某些过滤器时,我经常会收到404错误。
并非总是要过滤记录的请求失败,但是这种情况偶尔发生,而且并非总是如此。我无法确定其根本原因。到目前为止,我可以确定的是,没有与网络相关的问题导致此问题(已在本地计算机上进行了测试)。
我唯一关注的问题是偶尔的404,以防过滤器随请求一起传递。
还有以下是数据源配置:
dataSource: {
transport: {
read: {
type: "POST",
url: "/api/MyController"
}
},
schema: {
model: {
fields: {
...
}
},
data: "data",
total: "total",
aggregates: "aggregate"
},
serverPaging: true,
serverSorting: true,
serverAggregates: true,
serverFiltering: true,
pageSize: 20,
aggregate: [
...
],
}
似乎在传递多个过滤器并且服务器拒绝请求的情况下,查询参数过长。
一种可能的解决方案是增加允许的查询参数长度(我没有使用)。
或者,我将请求切换到POST(现在已将过滤器作为正文的一部分传递了,并且它解决了我的问题。
transport: {
read: {
type: "POST",
url: "/api/Data/MyData"
}
}