sql >> Base de Datos >  >> NoSQL >> MongoDB

Patrón de módulo Javascript con devolución de llamada Ajax

Hacer getOffers devolver el jqXHR getData devuelve como a continuación -

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
    };

})();

El jqXHR objeto devuelto por $.ajax({}) es una Promise -Cuando obtiene una respuesta exitosa para la solicitud de Ajax, puede adjuntar un controlador de éxito como este, fuera de su solicitud de Ajax

myApp.getOffers({
    'showData': 1,
    'myLocation': "Location1",
    'clientID': "Client1"
}).done(function (data, textStatus, jqXHR) {

    // work with DOM here
});

Más sobre Jquery Deferreds/Promises aquí -

También hiciste getData , getOffers global al faltar var al frente durante la declaración.

Según su comentario sobre el uso de POST en lugar de GET , la regla general es:GET es para la recuperación de datos, POST para guardar, solo porque usa POST eso no significa que alguien no pueda olfatear los datos que está enviando, es solo parte del cuerpo de la solicitud en lugar de la URL de la solicitud. Si cree que los datos que está enviando son realmente confidenciales, debería considerar habilitar SSL(HTTPS) para su aplicación.