MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Padrão de módulo Javascript com retorno de chamada Ajax


Faça getOffers retorne o jqXHR getData retorna como abaixo -
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
    };

})();

O jqXHR objeto retornado por $.ajax({}) é uma Promise -Quando você obtém uma resposta de sucesso para a solicitação Ajax - você pode anexar um manipulador de sucesso como este - fora da sua solicitação ajax
myApp.getOffers({
    'showData': 1,
    'myLocation': "Location1",
    'clientID': "Client1"
}).done(function (data, textStatus, jqXHR) {

    // work with DOM here
});

Mais sobre Jquery Deferreds/Promises aqui -

Além disso, você fez getData , getOffers global faltando var na frente durante a declaração.

De acordo com seu comentário sobre o uso de POST em vez de GET , a regra geral é - GET é para recuperação de dados, POST para salvar - só porque você usa POST isso não significa que alguém não possa farejar os dados que você está enviando, é apenas parte do corpo da solicitação em vez da URL da solicitação. Se você acha que os dados que está enviando são realmente confidenciais, verifique a ativação de SSL(HTTPS) para seu aplicativo.