在backbone.js中添加access_token

Mik*_*kko 5 javascript rest backbone.js

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

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

谢谢.

jev*_*lio 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);
};
Run Code Online (Sandbox Code Playgroud)