在backbone.js中添加access_token

时间:2012-12-07 12:39:37

标签: javascript rest backbone.js

在我的REST服务器中,它要求access_token存在于每个请求中。即在POSTing数据中,access_token需要与属性一起提交。

如何配置backbone.js以将access_token添加到每个GET,PUT,POST和DELETE请求?

感谢。

2 个答案:

答案 0 :(得分:4)

好的,我想我找到了一种在jQuery中如何做的方法。

$.ajaxSetup (
   {
      data: { access_token: 'my_access_token' }
   }
);

答案 1 :(得分:1)

Backbone使用jQuery / Zepto来处理AJAX请求,因此您可以使用这些库中提供的功能。

要向jQuery发出的所有XHR调用添加自定义标头,您可以使用在每个ajax请求之前触发的jQuery.ajaxSend event,并修改它作为参数接收的jqXHR。

根据OP的评论进行编辑:

修改发送数据的最简单方法可能是覆盖Backbone.sync函数。您可以包装本机实现,并在那里添加所需的属性:

var nativeSync = Backbone.sync;
Backbone.sync = function (method, model, options) {
  //for POST/PUT requests, add access token to the request
  if(model && (method === 'create' || method === 'update')) {

    var data = _.extend(model.toJSON(), {
      access_token: 'token'
    });

    options.data = JSON.stringify(data);
  }
  //call the native Backbone.sync implementation
  nativeSync(method, model, options);
};