Jak zastąpić Backbone.sync, aby dodać apikey i nazwę użytkownika na końcu?
Używam backbone-tastypie, ale mam najtrudniejszy czas, aby działał poprawnie. W Tastypie używam ApiKeyAuthentication dla moich zasobów, więc każde żądanie ajax, muszę dołączyć apikey i nazwę użytkownika na końcu żądania lub wysłać dodatkowe nagłówki, które dodają nazwę użytkownika i klucz API.
Próbuję usunąć widok i jego model przy użyciu szkieletu z następującym kodem:
// Remove the goal update view from the DOM
removeItem: function() {
this.model.destroy({wait: true, success: function() {
console.log("success");
}, error: function() {
console.log("error");
}});
},
Po wykonaniu funkcji przeglądarka próbuje wykonać żądanie GET na następującym adresie URL:
:8000/api/v1/update/2/
Nie zawiera api_key ani nazwy użytkownika na końcu i ma końcowy ukośnik na końcu adresu URL. Myślę, że próbuje użyć Backbone.oldSync do wykonania żądania GET. Jak to zrobić, aby synchronizacja zawierała nazwę użytkownika / klucz API na końcu i usuwa ukośnik końcowy?
We wszystkich innych żądaniach dokonałem tego, aby klucz api i nazwa użytkownika były dołączane na końcu żądania http, dodając następujący kod do szkieletu-tastypie:
if ( !resp && ( xhr.status === 201 || xhr.status === 202 || xhr.status === 204 ) ) { // 201 CREATED, 202 ACCEPTED or 204 NO CONTENT; response null or empty.
var location = xhr.getResponseHeader( 'Location' ) || model.id;
return $.ajax( {
url: location + "?" + "username=" + window.app.settings.credentials.username + "&api_key=" + window.app.settings.credentials.api_key,
success: dfd.resolve,
error: dfd.reject,
});
}