我正在实施一个在浏览器上使用backbone.js 与我的服务器通信的项目。是否可以在不将其添加到模型中的情况下随请求发送 api 密钥?在响应时,我可以检查与实际模型无关的数据,例如访问令牌?
谢谢你。
我正在实施一个在浏览器上使用backbone.js 与我的服务器通信的项目。是否可以在不将其添加到模型中的情况下随请求发送 api 密钥?在响应时,我可以检查与实际模型无关的数据,例如访问令牌?
谢谢你。
这应该让你开始
//the api key object
var apikey = {api:"^@%&HJJHJSDNkkjGHGSd*^*JHJ"};
//Backbone model
var model = Backbone.Model.extend({
url:"/todo",
sync:function(method,model,options){
_.extend(model.attributes,apikey);
Backbone.sync(method,model,options);
}});
//the api key object
var apikey = {api:"^@%&HJJHJSDNkkjGHGSd*^*JHJ"};
//Backbone model
var model = Backbone.Model.extend({
url:"/todo",
sync:function(method,model,options){
$.ajaxSetup({headers:apikey});
Backbone.sync(method,model,options);
}});
var x = new model({todo:"Welcome"}).save();
经过一番思考,将“咀嚼”模型发送到服务没有意义,因此更新后的代码会将 apikey 与请求标头附加在一起。在请求标头中搜索的关键是api
由于几乎必须在所有 ajax 请求中添加 api 密钥。我使用了每次发送 ajax 调用时调用的 jquery 函数:
$.ajaxPrefilter(function (options, originalOptions, jqXHR){
var newObject = {
append_new : 'APIKey'
}
options.data = $.param($.extend(originalOptions.data, newObject));
});
对于我使用的回复部分:
$('body').ajaxSuccess(function(e, xhr, settings){
console.log(xhr);
});