model.save(), collection.create()
当我调用这两个东西时,客户端会向我的服务器发送带有模型数据的POST请求。很棒。但是如果我想添加一个属性呢?我想在将POST请求发送到我的服务器之前添加“csrf_token: 12345”的数据。我该如何添加呢?自动完成?我希望所有的视图都可以实现这一点。
model.save(), collection.create()
可能以下代码可以解决问题:
CSRFAwareModel = Backbone.Model.extend({
defaults: {
'csrf_token': getToken()
}
});
MyModel = CSRFAwareModel.extend({
...
});
ajaxSetup
方法将csrf_token添加到每个请求中。$.ajaxSetup({ data: { 'csrf_token' : '12345' }});
由于Backbone在所有的ajax通信中使用jQuery,因此csrf_token将包含在每个ajax请求中。
有关更多信息,请参见博客文章。
collection.create()
将使用model.save()
来保存您的模型,因此如果您的集合使用model: CSRFAwareModel
,则csrf_token
将自动包含在其中。 - yatskevich