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

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

我修改的内存中适配器工作,但是当我尝试从使用模拟数据更改为从远程服务器更改为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; } 

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

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