AJAX Проблемы с 304 - PullRequest
       7

AJAX Проблемы с 304

0 голосов
/ 22 сентября 2018

У меня есть вызов AJAX (попробуйте игнорировать всю сериализацию, эта часть работает на 100%), которая выдает 304. Как бы я это настроил, чтобы мои данные (flightResults) не перезаписывались пустым ответом 304тело?Код ниже ... извинения за длинный фрагмент, просто хочу, чтобы все это было там .. Спасибо!

        var app = {};
        app.init = function(){
          app.flightsGeo();
        };
        app.flightsGeo = function(){
          var location = resp.headers.get('Location');
          var sessionKey = location.substring(location.lastIndexOf("/") + 1);
          let updatedURL = `https://skyscanner-skyscanner-flight-search-v1.p.mashape.com/apiservices/pricing/uk2/v1.0/${sessionKey}?sortType=price&sortOrder=asc&pageIndex=0&pageSize=5`
          $.ajax({
            type: "GET",
            url: updatedURL,
            dataType: 'json',
            headers: {
              'Content-Type': 'application/x-www-form-urlencoded',
              'X-Mashape-Key': 'yOLGSU9nWcmshQAjA5nXXXXXXXXX',
              'X-Mashape-Host': 'skyscanner-skyscanner-flight-search-v1.p.mashape.com',
            },
            success: function(response){

            },
            error: function(error){
              self.set('loading', false);
              self.set('searchError', true);
            }
          }).done(function(response){
            var itineraries = response.Itineraries;
            var agents      = response.Agents;
            var legs        = response.Legs;
            var carriers    = response.Carriers;
            var places      = response.Places;
            $.each(itineraries, function(itineraryKey, itineraryVal){
                var inbound          = app.getObjects( legs, 'Id', itineraryVal.InboundLegId),
                    inDepartureTime = inbound[0].Departure,
                    inArrivalTime   = inbound[0].Arrival,
                    inDepartureDate = inbound[0].Departure,
                    inArrivalDate   = inbound[0].Arrival,
                    inOrigin        = app.getObjects( places, 'Id', inbound[0].DestinationStation),
                    inDestination   = app.getObjects( places, 'Id', inbound[0].OriginStation),
                    inCarriers      = app.getObjects( carriers, 'Id', inbound[0].OperatingCarriers[0]);
                var outbound         = app.getObjects( legs, 'Id', itineraryVal.OutboundLegId),
                    outDepartureTime = outbound[0].Departure,
                    outArrivalTime   = outbound[0].Arrival,
                    outDepartureDate = outbound[0].Departure,
                    outArrivalDate   = outbound[0].Arrival,
                    outOrigin        = app.getObjects( places, 'Id', outbound[0].DestinationStation),
                    outDestination   = app.getObjects( places, 'Id', outbound[0].OriginStation),
                    outCarriers      = app.getObjects( carriers, 'Id', outbound[0].OperatingCarriers[0]);
                var agent     = app.getObjects( agents, 'Id', itineraryVal.PricingOptions[0].Agents[0]);
                var price     = itineraryVal.PricingOptions[0].Price.toFixed(2);
                var permalink = itineraryVal.PricingOptions[0].DeeplinkUrl;
                var time      = itineraryVal.PricingOptions[0].QuoteAgeInMinutes;
                var data = {
                    agent: agent,
                    price: price,
                    time : time,
                    permalink: permalink,
                    inbound: {
                      time: {
                        departure: inDepartureTime,
                        arrival: inArrivalTime
                      },
                      date: {
                        departure: inDepartureDate,
                        arrival: inArrivalDate
                      },
                      station: {
                        origin: inOrigin,
                        destination: inDestination
                      },
                      carriers: inCarriers
                    },
                    outbound: {
                      time: {
                        departure: outDepartureTime,
                        arrival: outArrivalTime
                      },
                      date: {
                        departure: outDepartureDate,
                        arrival: outArrivalDate
                      },
                      station: {
                        origin: outOrigin,
                        destination: outDestination
                      },
                      carriers: outCarriers
                    }
                };
                results.push(data);
            });
            self.set('flightResults', results);
            self.set('loading', false);
            self.set('complete', true);
          }).fail(function(){
              alert("Something went wrong");
          });
      };
      app.getObjects = function(obj, key, val) {
          var objects = [];
          for (var i in obj) {
            if (!obj.hasOwnProperty(i)) continue;
            if (typeof obj[i] == 'object') {
              objects = objects.concat(app.getObjects(obj[i], key, val));
            } else
            if (i == key && obj[i] == val || i == key && val == '') { //
              objects.push(obj);
            } else if (obj[i] == val && key == ''){
              if (objects.lastIndexOf(obj) == -1){
                objects.push(obj);
              }
            }
          }
        return objects;
      };
      var results = [];
      $(document).ready(app.init);
      return app;
...