Domanda

Sto usando backbone.js Paginator < / A> Plugin. Fa un pozzo infinito di scorrimento definendo la propria collezione per i modelli coinvolti nella rappresentazione. Se l'utente è connesso, il backend PHP restituisce l'oggetto backbone con un attributo aggiuntivo is_liked per causare tale elemento di avere un diverso stile CSS.

Problema : Quando il plugin del paginatore (con la propria collezione Backbone.Paginator.requestPager) viene visualizzata una richiesta fetch sul backend, il backend non è in grado di determinare se l'utente è connesso! Tuttavia, quando utilizzo il solito Backbone.Collection, il backend è in grado di determinare se l'utente è connesso! Funziona anche con un $.post(). Questo mi fa pensare che il problema si trova nel Backbone.Paginator.requestPager del plugin

Sto controllando i risultati utilizzando la sezione di rete degli strumenti per sviluppatori di Chrome. Se il controllo dell'autenticazione funziona, è possibile visualizzare api/test per restituire alcuni dati sull'utente. Se lo stato di accesso non può essere determinato, restituisce NULL

Aggiornamento: La richiesta GET inviata dalla raccolta Backbone.Paginator.requestPager non include le informazioni Cookie nelle intestazioni che si trovano nella richiesta GET inviata da Backbone.Collection. Potrebbe essere il problema? Come posso costringere Backbone.Paginator.requestPager a non spellare i dati dei cookie dalle intestazioni?

Cosa sta succedendo qui? E come posso risolverlo (senza riscrivere il mio codice di paginazione)?

Auth Test tramite dottore PHP Backend (Laravel Framework)

Route::any('api/test', function() {
    // This will return some data of the user if logged in
    return json_encode(Auth::user());  
});
.

Collezione di backbone tipica [opere]

SimilarUserCollection = Backbone.Collection.extend({
    model: User,
    url: 'api/test'
});
.

Collezione Paginator [non funziona]

PhotoCollection = Backbone.Paginator.requestPager.extend({
    model: Photo,

    paginator_core: {
            type: 'GET',
            dataType: 'json',
            url: 'api/test'
        },

    paginator_ui: {
        firstPage: 1,
        currentPage: 1,
        perPage: 7,
        totalPages: 10
    },

    server_api: {

        'page': function() { return this.currentPage; }
    },

    parse: function (response) {

        return response;
    }

});
.

È stato utile?

Soluzione

Questo è un problema di crossdomain:

Una richiesta è a questo URL: http://www.mysite.com/api/test?page=1

E l'altro a questo: http://mysite.com/api/test

Per i browser www.mysite.com è totalmente diverso quindi se il cookie viene generato su www.mysite.com richieste a mysite.com non lo conterrà.Assicurati che entrambe le richieste valorizzano allo stesso dominio e non avrai il problema dei cookie.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top