在Backbone.js中设置自定义标头不起作用

时间:2013-04-18 14:29:33

标签: javascript backbone.js

我正在尝试使用backbone.js方法在save应用程序中设置自定义标头。即使我可以使用fetch方法成功设置标头,也没有设置标头。

switch(method){
    case 'read' :
        model.fetch({
             headers:{
                 "Override-Authorization":'Basic ' + proxyAuth
             }
        });
        break;
    case 'create' || 'update' :
        sendAuthentication = function (xhr) {
            xhr.setRequestHeader('Override-Authorization','Basic ' + proxyAuth);
        };
        model.save({
            beforeSend:sendAuthentication,
            headers:{
                "Override-Authorization":'Basic ' + proxyAuth
            }
       });
       break;
    case 'delete' :
        model.delete({
            headers:{
                "Override-Authorization":'Basic ' + proxyAuth
            }
        });
        break;
    }

在第一种情况下,通过fetch调用,标头设置正确。在第二种情况下,使用save方法,标题未设置,即使我已经尝试过两种方式。有什么想法吗?

1 个答案:

答案 0 :(得分:11)

您可能需要查看Model#save的{​​{3}}。

model.save([attributes], [options]) 

您实际上是在为模型设置一些属性,而不是覆盖标题。

model.save({}, {
  beforeSend:sendAuthentication,
  headers:{
    "Override-Authorization":'Basic ' + proxyAuth
  }
});

会做到这一点。