0

所以我对剑道网络组合框有一个非常奇怪的问题,它带有 odata 和 serverFiltering: true

如果我在 localhost 服务器上使用它,它会请求 odata 格式并且效果很好。它是否指向数据的外部服务器(使用 CORS)并不重要。无论哪种方式,它都能很好地工作并以应有的方式获取数据等。

但是,一旦我将它放在公共领域,使用相同的浏览器就会失败。它以最奇怪的方式失败了:

它停止传递 $filter 属性。并且它停止调用 scheme.data 函数以正确解析结果(由于没有过滤器,它成功调用并获取所有结果集)。

此外,它不会将结果应用于下拉列表,因此它保持为空。

绝对不会引发 javascript 错误。在 schema.data 的函数上放置断点会导致它永远不会在 IE 或 chrome 中被命中。更改事件和错误事件也是如此。没有什么。

这是数据源:

dsContacts = new kendo.data.DataSource({
    type: "odata",
    serverPaging: true,
    serverSorting: true,
    serverFiltering: true,
    pageSize: 20,
    transport: {
        read: {
            url: User.serviceUrl + "/contact/list"
        }
    },
    schema: {
        data: function (data) {
            if(dsLinks.selectedItem().LinkedToContactID() && dsLinks.selectedItem().LinkedToContact()) {
                data.results.push({
                    ID: dsLinks.selectedItem().LinkedToContactID(),
                    Name: dsLinks.selectedItem().LinkedToContact()
                });
            }
            return data.results;
        }
    },
    error: function (e) {
        tradepointUtilities.ShowErrorAlert("Contact List Get", e);
    }
});

该组合定义为:

$("#cbo").kendoComboBox({
      dataTextField: "ID",
      dataValueField: "Name",
      suggest: true,
      datasource: dsContacts,
      filter: "contains",
      autoBind: false,
      delay: 300,
      minLength: 3
});

同样,在本地主机上完美运行,在所有浏览器中以完全相同的方式在生产中失败,没有任何错误。

想法?

4

0 回答 0