0

我的网络服务生成与http: //demos.kendoui.c​​om/service/products 相同的 jsonp 响应。

当我尝试为我的 web 服务创建数据源时,我在 firebug 控制台中收到回调未定义错误。

网络服务响应。

callback([{"category":null,"productName":"Puma","productId":1,"quantity":0,"price":3000.0,"categoryId":1,"description":"ok"} ])

但是当我使用 kendo ui webservice (http://demos.kendoui.c​​om/service/Products) 时,我得到了一个有效的数据源。

代码 :

$(document).ready(function() {
            var dataSource = new kendo.data.DataSource({
                    transport: {
                        read: {
                            //url: "http://demos.kendoui.com/service/products",
                            url: "http://localhost:8080/mobile-services/rest/categories/1/products.json",
                            dataType: "jsonp"
                        }
                    },
                    pageSize: 12
                });

            $("#pager").kendoPager({
                dataSource: dataSource
            });

            $("#listView").kendoListView({
                dataSource: dataSource,
                template: kendo.template($("#template").html())
            });
        });

请建议。

4

2 回答 2

0

您已将 JSONP 指定为dataType,并且您正在请求一个 JSON 文件。JSONP 和 JSON 不一样。尝试使用dataType: "json".

于 2012-07-18T10:25:56.027 回答
0

我猜函数名称不是callback
回调只是关键,函数本身可能会被调用,比如jQuery17101014779508113
你能看看你的数据源在读取操作期间向服务器发送了什么吗?(Chrome / Firebug 网络选项卡)
我正在使用 $_REQUEST['callback'] 变量(使用 PHP 脚本)并将其作为填充返回。由于您只是使用静态 .json 文件,并且回调函数名称将在每个请求上更改(以防止缓存),因此您将永远不会拥有正确的函数名称。
所以:我建议您使用 JSON 而不是 P 或者您动态返回您收到的相同回调。

干杯....

于 2012-09-11T14:18:24.840 回答