Gör getOffers
returnera jqXHR getData
returnerar som nedan -
var myApp = (function () {
var Var1 = [];
var getData = function (sendData) {
return $.ajax({
type: "POST",
url: URL,
data: sendData,
datatype: "json",
success: function (results) {}
});
};
var getOffers = function (sendData) {
// return the jqXHR returned by getData
return getData(sendData);
};
return {
getOffers: getOffers
};
})();
jqXHR
objekt som returneras av $.ajax({})
är ett Promise
-När du får ett framgångssvar för Ajax-förfrågan - du kan bifoga en framgångshanterare så här - utanför din ajax-förfrågan
myApp.getOffers({
'showData': 1,
'myLocation': "Location1",
'clientID': "Client1"
}).done(function (data, textStatus, jqXHR) {
// work with DOM here
});
Mer om Jquery Deferreds/Promises här -
Du har också skapat getData
, getOffers
global genom att sakna var
framför under deklarationen.
Enligt din kommentar om att använda POST
istället för GET
, den allmänna tumregeln är - GET
är för hämtning av data, POST för att spara - bara för att du använder POST
det betyder inte att någon inte kan sniffa informationen du skickar, det är bara en del av förfrågningskroppen istället för förfrågans URL. Om du tror att data du skickar är riktigt känslig bör du undersöka att aktivera SSL(HTTPS)
för din app.