Направете 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)
за вашето приложение.