0

jsonp応答を呼び出していますが、エラーを受信して​​います:jQuery18207158344800118357_1359997121430が呼び出されませんでした。誰かがこれを修正する方法を教えてもらえますか?あなたの助けに感謝。以下はクライアントコードです:

var dataSource = new kendo.data.DataSource({
serverPaging: true,
                    pageSize: 2,
                    type: "odata",
                    error: function(e) {
                        console.log("Error " + e);
                        alert(e.errorThrown);
                    },
                    transport: {
                        read: {
                            url: "http://localhost:50675/movie/GetAll", // the remove service url
                            dataType: "jsonp"
                        },
                        parameterMap: function(options) {
                            alert("Inside parameterMap")
                            alert(JSON.stringify(options, null, 4));
                            return {
                                q: "javascript",
                                page: options.page,
                                rpp: options.pageSize,
                            };
                        }
                  },
                  schema: {
                         errors: function(response) {
                            return response.errors;
                        },
                        data: function(data) {
                             if (data.movieList.length == 0) {
                                return [];
                             }
                            return data.movieList;
                        },
                        total: function(data) {
                            alert(data.movieList.length);
                            return data.movieList.length;
                        }
                   }
            });

            $("#localListView").kendoMobileListView({
                dataSource: dataSource,
                pullToRefresh: true,
                appendOnRefresh: true,
                template: $("#categories-template").html(),
                pullParameters: function(item) {
                    alert("Inside pullParameters")
                    alert(item.length);
                    alert(JSON.stringify(item, null, 4));
                    return {
                        page: 1
                    };
                }
            });

Chromeデベロッパーツールでチェックインすると、サーバーから応答が正常に受信されます。以下はサーバーからのjsonp応答です:

({"movieList":[{"ID":1、 "Title": "Movie"、 "ReleaseDate": "/ Date(487189800000)/"、 "Genre": "Comedy"、 "Price":30}、 {"ID":1、 "Title": "Movie"、 "ReleaseDate": "/ Date(487189800000)/"、 "Genre": "Comedy"、 "Price":30}]、 "count":4} )。

4

1 に答える 1

0

JSONP が完全ではないように思えます。次のようになるはずです。

jQuery18207158344800118357_1359997121430({"movieList":[{"ID":1,"Title":"Movie","ReleaseDate":"\/Date(487189800000)\/","Genre":"Comedy","Price":30},{"ID":1,"Title":"Movie","ReleaseDate":"\/Date(487189800000)\/","Genre":"Comedy","Price":30}],"count":4});

Whereは変数であり、リクエストパラメーターjQuery18207158344800118357_1359997121430として受け取ります。$callback

于 2013-02-04T21:57:42.293 に答える