Направете getOffers върне jqXHR getData връща като по-долу -
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 обект, върнат от $.ajax({}) е Promise -Когато получите успешен отговор за Ajax заявката - можете да прикачите успешен манипулатор като този - извън вашата ajax заявка
myApp.getOffers({
'showData': 1,
'myLocation': "Location1",
'clientID': "Client1"
}).done(function (data, textStatus, jqXHR) {
// work with DOM here
});
Повече за Jquery Deferreds/Promises тук -
Също така направихте getData , getOffers глобален чрез липсващ var отпред по време на декларацията.
Според коментара ви относно използването на POST вместо GET , общото правило е - GET е за извличане на данни, POST за запазване - само защото използвате POST това не означава, че някой не може да надуши данните, които изпращате, те са просто част от тялото на заявката вместо URL адреса на заявката. Ако смятате, че данните, които изпращате, са наистина чувствителни, трябва да разгледате възможността за активиране на SSL(HTTPS) за вашето приложение.