2012-07-13 8 views
11

ho bisogno di fare richiesta sul server che ha bisogno di chiave API particolarmente e ho bisogno di utilizzare il metodo di CRUD tu aggiornare il mio modello e, non appena ...Come specificare url e header in backbone per usare il metodo crud sul mio modello?

Per esempio io ho questo codice in ajax per ottenere elemento da server:

function getapi() { 

$.ajax({ 
    url: 'https://api.parse.com/1/classes/autolavaggi/QSfl*****', 
    type: 'GET', 
    dataType: 'json', 

    success: function(obj) { 

     alert("nome autolavaggio "+obj.nome); 

    }, 
    error: function() { 
     alert('Errore'); 


    }, 
    beforeSend: setHeader 
}); 
} 

    //GET GET GET GET GET GET GET GET Header Header Header Header 
    function setHeader(xhr) { 
xhr.setRequestHeader('X-Parse-Application-Id', 'aqLJlmE2rRXBOy***************'); 
xhr.setRequestHeader('X-Parse-REST-API-Key', 'gvT2Isd5vAvjgq*****************'); 
} 

Come posso fare per assegnare questo particolare chiamata AJAX al metodo CRUD salvare, recuperare o di un altro ??

risposta

19

Ciascuno dei metodi grezzi accetta un hash di opzioni che verrà inoltrato alla chiamata Ajax. Nel caso di una raccolta fetch:

var Model = Backbone.Model.extend({}); 
var Collection = Backbone.Collection.extend({ 
    model: Model, 
    url: 'https://api.parse.com/1/classes/autolavaggi/QSfl*****' 
}); 

var setHeader = function (xhr) { 
    xhr.setRequestHeader('X-Parse-Application-Id', 'aqLJlmE2rRXBOy***************'); 
    xhr.setRequestHeader('X-Parse-REST-API-Key', 'gvT2Isd5vAvjgq*****************'); 
} 

var collection = new Collection(); 
collection.fetch({ beforeSend: setHeader }); 

In alternativa, override di sincronizzazione:

var sync = Backbone.sync; 
Backbone.sync = function(method, model, options) { 
    options.beforeSend = function (xhr) { 
    xhr.setRequestHeader('X-Parse-Application-Id', 'aqLJlmE2rRXBOy***************'); 
    xhr.setRequestHeader('X-Parse-REST-API-Key', 'gvT2Isd5vAvjgq*****************'); 
    }; 

    // Update other options here. 

    sync(method, model, options); 
}; 
+0

È questo un esempio di override metodo di sincronizzazione ?? –

+0

Quello era un esempio di manipolazione della richiesta ajax risultante senza eseguire l'override della sincronizzazione. Ho aggiornato il post per includere anche un esempio di sincronizzazione sovrascritta globalmente. – jmconrad

+0

Ma in quale parte del codice (modello, collezione ecc.) Posso scrivere l'override della sincronizzazione ?? –

Problemi correlati