0

私の Web サービスは、 http: //demos.kendoui.c​​om/service/products と同じ jsonp レスポンスを生成します。

Web サービスのデータソースを作成しようとすると、firebug コンソールでコールバックが定義されていないというエラーが発生します。

Web サービスの応答。

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

しかし、剣道 ui Web サービス (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
コールバックではなく、単なるキーであり、関数自体は sth のように呼び出される可能性がjQuery17101014779508113
あります。読み取り操作中にデータソースがサーバーに送信しているものを確認できますか? (Chrome / Firebug Network タブ)
$_REQUEST['callback'] 変数を (PHP スクリプトで) 取得し、それをパディングとして返しています。静的な .json ファイルを使用しているだけで、(キャッシュを防ぐために) 要求ごとにコールバック関数名が変更されるため、正しい関数名が得られることはありません。
したがって、P の代わりに JSON を使用するか、受信しているのと同じコールバックを動的に返すことをお勧めします。

乾杯....

于 2012-09-11T14:18:24.840 に答える