【问题标题】:KendoUI : Error jQuery was not calledKendoUI:未调用错误 jQuery
【发布时间】:2013-01-19 10:44:37
【问题描述】:

调用 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})

【问题讨论】:

    标签: jquery kendo-ui


    【解决方案1】:

    在我看来,您的 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});
    

    其中jQuery18207158344800118357_1359997121430 是可变的,您将收到它作为$callback 请求参数。

    【讨论】:

    • 感谢您的回复。 JSONP 响应不完整,无法获取带有回调名称的 JSONP。我在传输读取中错过了“jsonp:d”语句。但现在收到错误“Uncaught TypeError: Cannot read property '__count' of undefined”。
    猜你喜欢
    • 2012-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多