Search code examples
javascriptjquerycordovajsonp

JSONP adapter Phonegap project not working


I am using the sample code (slightly modified) to implement a JSONP adapter found here: http://coenraets.org/blog/2013/04/building-pluggable-and-mock-data-adapters-for-web-and-phonegap-applications/

My modified in-memory adapter works, but when I try to change from using the mock data, to a JSONP data object from a remote server, it doesn't work. Below is my memory adapter:

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;


}

Solution

  • You don't need the /callback=? appended to the end of the url. This is taken care of automatically because the dataType is set to 'jsonp'.