Muszę odczytywać nagłówki odpowiedzi na żądanie AJAX wykonane metodą backbone.js pobierania. Czy jest jakiś sposób na odczyt nagłówków, jeśli zastąpię metodę pobierania:

var PageCollection = Backbone.Collection.extend({

    url: 'http://localhost/cms?_mn=Mod_Admin&_mf=getAllPages',

    model: PageModel,

    fetch: function (options) {
        Backbone.Collection.prototype.fetch.call(this, options);
        // The above line of code works and fetch the dataset 
        // BUT how i can read the response headers at this point
    }
});
4
asim-ishaq 6 grudzień 2013, 17:46

4 odpowiedzi

Najlepsza odpowiedź

Użyj zwrotny "Sukces", aby uzyskać obiekt XHR, więc będziesz miał możliwość uzyskania wszystkich nagłówków odpowiedzi:

collection.fetch({
    success: function (collection, response, options) {
        options.xhr.getAllResponseHeaders(); // To get all the headers
        options.xhr.getResponseHeader('header_name'); // To get just one needed header
    }
});
16
Nazar 6 grudzień 2013, 14:01

Szereg fetch() Metoda Zwraca {x1}} obiekt. Możesz zadzwonić do done() na tym obiekcie, aby dodać wywołanie zwrotne, które zostaną wywołane, gdy żądanie zostanie zakończone. Następnie użyj metody getResponseHeader() na obiekcie jqXHR, aby uzyskać wartość nagłówku, który Cię interesuje, lub zadzwoń getAllResponseHeaders(), aby uzyskać wszystkie nagłówki.

Więc w nadpisaniu metody {x0}} możesz zrobić coś takiego:

var jqXHR = Backbone.Collection.prototype.fetch.call(this, options);
jqXHR.done(function() {
    // Get all headers:
    console.log('All headers:', jqXHR.getAllResponseHeaders());
    // Or get a specific header:
    console.log('Content-Length:', jqXHR.getResponseHeader('Content-Length'));
});
3
Alex 6 grudzień 2013, 14:13

Spójrz na moje wdrożenie i jak użyłem Funkcja analizy

var CustomPageCollection = Backbone.Collection.extend({
    model: CustomPage,
    url: '/pb/editor/pages',
    parse: function(resp, xhr) {
        this.paginationInfo = JSON.parse(xhr.getResponseHeader('X-Pagination-Info'));
        return resp.items;
    }
});
0
Basheer AL-MOMANI 10 październik 2017, 20:13

Dowiedziałem się ładniejszym sposobem: Kolekcja pożarna funkcję "Parse", podczas powrotu z serwera bakcbonejs - ankietowanie analizy

parse:function(a,b,c){      
    console.log("a",a);
    console.log("b",b);
    console.log("c",c);
},

Nasz kumpel jest w B :)

-1
Gugu 3 luty 2015, 13:53