Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Backbone.js 无法将自定义标头传递到主干';来吧_Backbone.js - Fatal编程技术网

Backbone.js 无法将自定义标头传递到主干';来吧

Backbone.js 无法将自定义标头传递到主干';来吧,backbone.js,Backbone.js,呃 我正在尝试实现我的自定义集合,其中覆盖了fetch方法。稍后,我将使用此集合扩展我的主干集合 var BaseCollection = Backbone.Collection.extend({ fetch: function (options) { options = options || {}; if (!options.headers) { options.headers = { 'Con

我正在尝试实现我的自定义集合,其中覆盖了fetch方法。稍后,我将使用此集合扩展我的主干集合

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在评论中分享的内容中看到的那样,代码似乎是有效的

但是,您的代码在case
options.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插件。当我删除它时,一切都很好。

我可能弄错了,但您的代码似乎按原样工作