0

したがって、serverFiltering: true を使用した odata を使用した剣道 Web コンボボックスには、本当に奇妙な問題があります。

localhost サーバーで使用すると、odata 形式が要求され、うまく機能します。(CORS を使用して) データ用に外部サーバーを指しているかどうかは関係ありません。いずれにせよ、うまく機能し、データを想定どおりに戻すことができます。

ただし、パブリックドメインに置くとすぐに、同じブラウザーを使用して失敗します。そして、それは最も奇妙な方法で失敗します:

$filter プロパティの通過を停止します。AND 結果を適切に解析するため、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