最近把之前一个项目的代码用backbone在重构,其间遇到跨域的问题。所以查了点资料,写了如下代码。
[code lang=”js”]
var Zy = {};
Zy.Sync = function(sData) {
return function(method, model, options) {//以下代码请根据实际情况填写
options.data = sData;
options.timeout = 10000;
options.dataType = "jsonp";
options.jsonp = "callbackparam";
options.jsonpCallback = "success_jsonpcallback";
return Backbone.sync(method, model, options);
}
}
var url = YOUR URL; //这里填写你要跨域的url
var Login = Backbone.Model.extend({});//创建一个空Model
var sData = "";//需要提交的参数,我这里是构造url来提交的
var LoginCollection = Backbone.Collection.extend({
model: Login,
url: url,
sync: Zy.Sync(sData),
parse: function(response) {
return response.results;
}
});
var logincollection = new LoginCollection();
var LoginView = Backbone.View.extend({
initialize: function(){
this.model.fetch({success: function(collection,response){console.log(response)}});
}
});
var loginView = new LoginView({model: logincollection});
[/code]