MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Modello di modulo Javascript con callback Ajax

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.