add request header on backbone
backbone.js, jquery
Solution
Models in Backbone retrieve, update, and destroy data using the methods `fetch`, `save`, and `destroy`. These methods delegate the actual request portion to Backbone.sync. Under the hood, all `Backbone.sync` is doing is creating an ajax request using jQuery. In order to incorporate your Basic HTTP authentication you have a couple of options.
`fetch`, `save`, and `destroy` all accept an additional parameter `[options]`. These `[options]` are simply a dictionary of jQuery request options that get included into jQuery ajax call that is made. This means you can easily define a simple method which appends the authentication:
sendAuthentication = function (xhr) {
var user = "myusername";// your actual username
var pass = "mypassword";// your actual password
var token = user.concat(":", pass);
xhr.setRequestHeader('Authorization', ("Basic ".concat(btoa(token))));
}
And include it in each `fetch`, `save`, and `destroy` call you make. Like so:
fetch({
beforeSend: sendAuthentication
});
This can create quite a bit of repetition. Another option could be to override the `Backbone.sync` method, copy the original code and just include the `beforeSend` option into each jQuery ajax request that is made.
Hope this helps!
Problem
My server has a manual authorization. I need to put the username/password of my server to my backbone request inorder for it to go through. How may i do this? Any ideas? Thank you