Я пытаюсь читать с удаленного сервиса. Когда я использую метод .read()
, я вижу ответ AJAX на вкладке Network
моего браузера, но я не понимаю, почему я не могу зарегистрировать ответ сервера на консоль моего браузера.Почему данные из наблюдаемого объекта Kendo DataSource не регистрируются в консоли?
Вот мой код:
var accountsListDs = new kendo.data.DataSource({
transport: {
read: function() {
$.ajax({
url: "http://localhost:8085/cabinet/wicket/bookmarkable/com.office.web.services.AccountsService",
dataType: "json",
type: "POST",
cache: false,
data: {
op: "list"
},
success: function(){
console.log("DataSource Read Success");
},
error: function(){
console.log("DataSource Read Failed");
}
});
},
schema: {
data: function(response) {
return response;
}
}
},
requestEnd: function(e) {
var response = e.response;
console.log(response);
}
});
я вручную побежал accountsListDs.read()
из консоли моего браузера. Я получаю идеальный ответ от сервера. Когда я попытался сделать accountsListDs.data()
, он возвращает пустой массив. Я предполагаю, что он делает асинхронный вызов, поэтому .data()
не сразу начнет работать, я даже попытался подключить его к событию requestEnd
(как описано в слишком полезной документации Кендо, но все равно не повезло).
Даже если я скопирую код из документации Kendo, он не работает.
Что мне здесь не хватает?
(Спасибо заранее, CodingWithSpike)
Ваш код прекрасно работает. Я только что заменил URL-адрес и отправил параметры данных (также переключился с jsonp на json), и теперь я получаю эту ошибку. Скриншот: http://i.imgur.com/Gqm14tQ.png –
Вы можете использовать JSON, насколько вы используете его на том же сервере, иначе у вас будут проблемы с совместным использованием ресурсов CORS (Cross-origin). То, что вы показываете, похоже, не является массивом значений. В основном данные должны быть массивом, и вы показываете «статус» и что-то называемое «providerAccounts», которое показано как «объект». Где возвращенные данные? Что вы видите, если вы отображаете полученные данные в функции 'success' вызова' ajax'? – OnaBai
Нет, проблема не в перекрестном домене. Обратный вызов успеха возвращает это: {"status": "SUCCESS", "providerAccounts": {"autoLogin": [], "online": []}} –