1

我正在尝试以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方法,没有设置标题,即使我已经尝试过两种方式。有什么想法吗?

4

1 回答 1

11

您可能想看看Model#save's文档

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

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

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

会成功的。

于 2013-04-18T14:38:57.900 回答