5

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

如何配置backbone.js 为每个GET、PUT、POST 和DELETE 请求添加access_token?

谢谢。

4

2 回答 2

4

好的,我想我找到了一种在 jQuery 中执行此操作的方法。

$.ajaxSetup (
   {
      data: { access_token: 'my_access_token' }
   }
);
于 2012-12-07T13:14:12.783 回答
1

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

要将自定义标头添加到 jQuery 进行的所有 XHR 调用,您可以使用jQuery.ajaxSend 事件,该事件在每个 ajax 请求之前触发,并修改它作为参数接收的 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);
};
于 2012-12-07T12:52:34.990 回答