Не удается получить доступ к веб-сервису в мобильном приложении Kendo ui.

Может кто-нибудь помочь мне, чувак. Я пытаюсь создать простое мобильное приложение для своей компании. Поскольку это должно быть независимое от платформы приложение, я решил использовать New Kendo ui With phone gap.

Кажется, все работает нормально, но я не могу получить доступ к любому веб-сервису в мобильном эмуляторе. Я использую эмулятор Android на ПК с Windows 7. Я также дал разрешение на доступ в Интернет в файле AndroidManifest.xml. Вот мой Кендоуи, получающий доступ к сервису

TaskManager.DataAccess = {}

TaskManager.DataAccess._sprints = null;

TaskManager.DataAccess.getSprints = function(callback) {
  try {

    if (TaskManager.DataAccess._sprints == null) {
        $.ajax({
            url: "http://localhost/TaskManager.Mvc/Mobile/Sprints",
            dataType: "jsonp",
            jsonp: "d",
            cache: false
        })
        .done(function (response) {
            alert("helloo");
            TaskManager.DataAccess._sprints = response.sprints;
            callback(TaskManager.DataAccess._sprints);
        })
    }
  } catch (err) {
  }
}

Я попытался скомпилировать пример начала работы на веб-сайте телерика, вот ссылка http://www.kendoui.com/blogs/teamblog/posts/12-02-22/building_your_first_kendo_ui_mobile_phonegap_application.aspx.

Я могу заставить веб-сервис работать, если я получаю доступ к нему через любой браузер на ПК, но каким-то образом данные недоступны в эмуляторе. Я не знаю причину, но это сводит меня с ума.

Я также попробовал этот пример http://www.aspnetwiki.com/page:kendo-ui-mobile-task-manager-part-1, но тот же результат.

Любая помощь приветствуется. пожалуйста


person user1435242    schedule 19.06.2012    source источник


Ответы (1)


Измените свой URL на:

url: "http://10.0.2.2/TaskManager.Mvc/Mobile/Sprints",

См. раздел Общие задачи и способы их выполнения в Android.

Если вам нужно сослаться на локальный хост вашего хост-компьютера, например, когда вы хотите, чтобы клиент эмулятора связался с сервером, работающим на том же хосте, используйте псевдоним 10.0.2.2 для ссылки на петлевой интерфейс хост-компьютера. С точки зрения эмулятора, localhost (127.0.0.1) относится к его собственному петлевому интерфейсу.

person Rajesh    schedule 19.06.2012
comment
Спасибо Раджеш за быстрый ответ. Я попробовал ваше предложение, но, к сожалению, не повезло. Нужно ли какое-либо специальное разрешение приложению Phone Gap для доступа к интернет-ресурсу? Спасибо - person user1435242; 19.06.2012
comment
Да, нужно указать <uses-permission android:name="android.permission.INTERNET" />. Если все равно не работает, попробуйте зайти по ссылке из браузера на эмуляторе - person Rajesh; 19.06.2012
comment
да, я пытался получить доступ к ссылке через браузер эмулятора, и он работает нормально. У меня есть разрешение на доступ в Интернет в файле Android XMl. - person user1435242; 19.06.2012
comment
Я не получаю никакой ошибки. просто данные недоступны в эмуляторе. После изменения URL-адреса, как вы предлагаете, до того, как знак загрузки исчезнет через 1 секунду или около того. Раньше он просто продолжает загружаться. - person user1435242; 19.06.2012
comment
Убедитесь, что параметры, которые вы указали для вызова функции ajax, верны. Если возможно, попробуйте самый простой фрагмент кода и изолируйте проблему. - person Rajesh; 19.06.2012
comment
Достигнут некоторый прогресс. Мой вызов службы из эмулятора достигает службы, и я могу получить ответ. Но все же он ничего не отображал на экране. После размещения предупреждения внутри функции вызова с ответом в качестве параметра. Я узнал, что внутри него четыре предмета. - person user1435242; 22.06.2012