JSONP适配器Phonegap项目无法正常工作

时间:2014-07-03 21:02:23

标签: javascript jquery cordova jsonp

我正在使用示例代码(稍加修改)来实现此处的JSONP适配器:http://coenraets.org/blog/2013/04/building-pluggable-and-mock-data-adapters-for-web-and-phonegap-applications/

我修改后的内存适配器可以工作,但是当我尝试从使用模拟数据转换为远程服务器的JSONP数据对象时,它不起作用。下面是我的内存适配器:

var JSONPAdapter = function() {

this.initialize = function(data) {
    var deferred = $.Deferred();
    url = data;
    deferred.resolve();
    return deferred.promise();
}

this.findById = function(id) {
    return $.ajax({url: url + "/" + id, dataType: "jsonp"});
}

this.findByName = function(searchKey) {
    return $.ajax(
        {
            url: url + "?Name=" + searchKey,
            dataType: "jsonp",
            success: function (data) { },
            error: function (XHR, textStatus, errorThrown) { alert("error: " + errorThrown + '\nurl: ' + url + "?Name=" + searchKey);
        }
    });
}

this.getAll = function getAll() {
    return $.ajax({ url: url, dataType: "jsonp" });
}

var url;


}

2 个答案:

答案 0 :(得分:1)

你不需要/ callback =?附加到网址的末尾。这是自动处理的,因为dataType设置为' jsonp'。

答案 1 :(得分:0)

我怀疑这是由于你的JSONData变量的范围。 如果getJSONData()调用中存在错误,则无法正确初始化。在定义函数之前尝试声明JSONData变量。