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

Set custom header in Backbone.js not working

本文关键字:自定义 报头 不起作用 设置 Backbone js      更新时间:2023-09-26

我试图在save方法中设置backbone.js应用程序中的自定义标头。标题没有被设置,即使我可以在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方法,标题没有设置,即使我已经尝试了这两种方式。任何想法吗?

你可能想看看Model#save的文档。

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

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

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