Jquery Mobile обратный вызов getJSON не запущен - PullRequest
2 голосов
/ 29 января 2012

Я вытягиваю свои волосы этим.Я пытаюсь вызвать getJSON, и функция обратного вызова никогда не срабатывает.Я попытался добавить предупреждение, а также отладку firebug, но обратный вызов никогда не происходит.

Ответ службы показывает строку JSON, поэтому я не уверен, что происходит не так.Есть указатели?

Вот мой код, который вызывает сервис Play Framework:

            var serviceURL = "http://localhost:9000/signup/";

    var employees;

    $('#employeeListPage').bind('pageinit', function(event) {
        $.mobile.allowCrossDomainPages = true;
        getEmployeeList();
    });

    function getEmployeeList() {
        $.getJSON(serviceURL + 'getemployees?callback=?', function(data) {
            alert(data);
            $('#employeeList li').remove();
            employees = data.items;
            $.each(employees, function(index, employee) {
                $('#employeeList').append('<li><a href="employeedetails.html?id=' + employee.id + '">' +
                        '<img src="pics/' + employee.picture + '"/>' +
                        '<h4>' + employee.firstName + ' ' + employee.lastName + '</h4>' +
                        '<p>' + employee.title + '</p>' +
                        '<span class="ui-li-count">' + employee.reportCount + '</span></a></li>');
            });
            $('#employeeList').listview('refresh');
        });
    }

Сервис play возвращает строку json.

Кто-нибудь видит, что я делаю неправильно?почему предупреждение никогда не выполняется?

1 Ответ

1 голос
/ 29 января 2012

Некоторые советы по отладке:

  1. Убедитесь, что вызывается getEmployeeList ().Поместите команду console.log('getEmployeeList()') прямо вверху этой функции.Если он не вызывается, то я думаю, что #employeeListPage не существует (по крайней мере, не тогда, когда вы этого ожидаете).
  2. Проверьте, что URL, который вы пытаетесь вызвать, это то, что вы думаетеэто.Зарегистрируйте весь URL.
  3. Используйте Firebug для просмотра запросов и ответов.Можете ли вы увидеть запрашиваемую страницу?Это дает правильный ответ?Если нет, то ваша функция обратного вызова не будет вызвана.Также добавьте обратный вызов сбоя.

РЕДАКТИРОВАТЬ На основе комментариев - кажется, что платформа Play изначально не поддерживает JSONP.Я не уверен, есть ли у вас контроль над этим.http://groups.google.com/group/play-framework/browse_thread/thread/253107904a5c98f8

...