したがって、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
});
繰り返しますが、ローカルホストで完全に動作し、すべてのブラウザーでエラーなしで本番環境とまったく同じように失敗します。
アイデア?