Fai getOffers
restituire jqXHR getData
restituisce come di seguito -
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
};
})();
Il jqXHR
oggetto restituito da $.ajax({})
è una Promise
-Quando ricevi una risposta di successo per la richiesta Ajax - puoi allegare un gestore di successo come questo - al di fuori della tua richiesta Ajax
myApp.getOffers({
'showData': 1,
'myLocation': "Location1",
'clientID': "Client1"
}).done(function (data, textStatus, jqXHR) {
// work with DOM here
});
Maggiori informazioni su Jquery Deferreds/Promises qui -
Inoltre hai creato getData
, getOffers
globale mancando var
davanti durante la dichiarazione.
Secondo il tuo commento sull'utilizzo di POST
invece di GET
, la regola pratica generale è - GET
è per il recupero dei dati, POST per il salvataggio, solo perché usi POST
ciò non significa che qualcuno non possa annusare i dati che stai inviando, è solo una parte del corpo della richiesta invece dell'URL della richiesta. Se ritieni che i dati che stai inviando siano davvero sensibili, dovresti cercare di abilitare SSL(HTTPS)
per la tua app.