Machen Sie getOffers gib jqXHR getData zurück gibt wie unten -
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
};
})();
Der jqXHR Objekt, das von $.ajax({}) zurückgegeben wird ist ein Promise -Wenn Sie eine Erfolgsantwort für die Ajax-Anfrage erhalten, können Sie einen Erfolgshandler wie diesen anhängen – außerhalb Ihrer Ajax-Anfrage
myApp.getOffers({
'showData': 1,
'myLocation': "Location1",
'clientID': "Client1"
}).done(function (data, textStatus, jqXHR) {
// work with DOM here
});
Mehr zu Jquery Deferreds/Promises hier -
Außerdem haben Sie getData erstellt , getOffers global durch fehlende var während der Deklaration voran.
Gemäß Ihrem Kommentar zur Verwendung von POST statt GET , lautet die allgemeine Faustregel - GET dient zum Abrufen von Daten, POST zum Speichern - nur weil Sie POST verwenden Das bedeutet nicht, dass jemand die von Ihnen gesendeten Daten nicht mitschnüffeln kann, es ist nur ein Teil des Anforderungstexts anstelle der Anforderungs-URL. Wenn Sie der Meinung sind, dass die von Ihnen gesendeten Daten sehr sensibel sind, sollten Sie versuchen, SSL(HTTPS) zu aktivieren für Ihre App.