JBaczuk
JBaczuk

Reputation: 14619

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;


}

Upvotes: 0

Views: 125

Answers (2)

Davie Brown
Davie Brown

Reputation: 717

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'.

Upvotes: 1

Davie Brown
Davie Brown

Reputation: 717

I suspect this is due to the scope of your JSONData variable. It is not initialised correctly if there is an error within the getJSONData() call. Try declaring the JSONData variable before the function is defined.

Upvotes: 0

Related Questions