Backbone.js 无法将自定义标头传递到主干';来吧
呃 我正在尝试实现我的自定义集合,其中覆盖了fetch方法。稍后,我将使用此集合扩展我的主干集合Backbone.js 无法将自定义标头传递到主干';来吧,backbone.js,Backbone.js,呃 我正在尝试实现我的自定义集合,其中覆盖了fetch方法。稍后,我将使用此集合扩展我的主干集合 var BaseCollection = Backbone.Collection.extend({ fetch: function (options) { options = options || {}; if (!options.headers) { options.headers = { 'Con
var BaseCollection = Backbone.Collection.extend({
fetch: function (options) {
options = options || {};
if (!options.headers) {
options.headers = {
'Content-type': 'application/json',
'Accept': 'application/json',
'Authorization' : "Basic: user:password"
};
}
options.reset = true;
console.log('I am extended fetch method');
return Backbone.Collection.prototype.fetch.call(this, options);
}
});
var ShipsCollection = BaseCollection.extend({
url: 'http://localhost:3000/v1/ships',
model: Ship
});
但是,当我为我的集合调用fetch时,我看不到发送到服务器的头:
var shipsCollection = new ShipsCollection();
shipsCollection.fetch();
如何扩展fetch以能够发送自定义头?我不想这样做。正如您从@nikoshr在评论中分享的内容中看到的那样,代码似乎是有效的
但是,您的代码在caseoptions.headers
存在的情况下不起作用。我建议修改代码如下:
fetch: function(options) {
options = options || {};
var custom = {
'Content-type': 'application/json',
'Accept': 'application/json',
'Authorization': "Basic: user:password"
};
options.headers = options.headers ? _.extend(options.headers, custom) : custom;
options.reset = true;
return Backbone.Collection.prototype.fetch.call(this, options);
}
在我的例子中,它是一个AdBlock插件。当我删除它时,一切都很好。我可能弄错了,但您的代码似乎按原样工作