Jquery Mobile getJSON回调未触发

时间:2012-01-29 17:35:25

标签: jquery json jquery-mobile playframework

我正用这个把头发拉出来。我试图调用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');
        });
    }

播放服务返回一个json字符串。

任何人都知道我做错了什么?为什么警报从未执行过?

1 个答案:

答案 0 :(得分:1)

一些调试提示:

  1. 确保正在调用getEmployeeList()。将console.log('getEmployeeList()')命令放在该函数的顶部。如果它没有被调用,那么我的猜测是#employeeListPage不存在(至少,当你期望它时。)
  2. 检查您尝试呼叫的网址是否是您认为的。记录整个URL。
  3. 使用Firebug查看请求和响应。你能看到被请求的页面吗?它是否给出了有效的回复?如果没有,那么将不会调用您的成功回调函数。添加失败回调。

  4. EDIT 根据评论 - 似乎Play框架本身不支持JSONP。我不确定你是否对此有任何控制权。 http://groups.google.com/group/play-framework/browse_thread/thread/253107904a5c98f8