MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Javascript-Modulmuster mit Ajax-Callback

Machen Sie getOffers gib jqXHR getData zurück gibt wie unten -

zurück
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
    };

})();

Der jqXHR Objekt, das von $.ajax({}) zurückgegeben wird ist ein Promise -Wenn Sie eine Erfolgsantwort für die Ajax-Anfrage erhalten, können Sie einen Erfolgshandler wie diesen anhängen – außerhalb Ihrer Ajax-Anfrage

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

    // work with DOM here
});

Mehr zu Jquery Deferreds/Promises hier -

Außerdem haben Sie getData erstellt , getOffers global durch fehlende var während der Deklaration voran.

Gemäß Ihrem Kommentar zur Verwendung von POST statt GET , lautet die allgemeine Faustregel - GET dient zum Abrufen von Daten, POST zum Speichern - nur weil Sie POST verwenden Das bedeutet nicht, dass jemand die von Ihnen gesendeten Daten nicht mitschnüffeln kann, es ist nur ein Teil des Anforderungstexts anstelle der Anforderungs-URL. Wenn Sie der Meinung sind, dass die von Ihnen gesendeten Daten sehr sensibel sind, sollten Sie versuchen, SSL(HTTPS) zu aktivieren für Ihre App.