花了几个小时寻找解决方案后,我终于在这里发布了问题。让我知道我的愚蠢程度:)。
以下是代码:
Model and collection:
var app = app || {};
var metricsModel = Backbone.Model.extend({});
var MetricsList = Backbone.Collection.extend({
model:metricsModel,
sync: function(method, collections, options) {
options.dataType = "jsonp";
return Backbone.sync(method, collections, options);
},
url:<url>
});
View:
app.CommitmentView = Backbone.View.extend({
initialize:function(){
app.metrics = new MetricsList();
app.metrics.bind("change", this.render, this);
app.metrics.fetch({
success: function(collection,response) {
console.log("fetch successful" + response);
},
error: function(collection,response) {
console.log("error" + JSON.stringify(response));
}
});
app.metrics.on('all',this.render,this);
}
});
结果:错误{“readyState”:4,“status”:200,“statusText”:“成功”}。
始终调用错误回调。我对后端没有多少控制权。确保完成以下检查:
服务器使用正确的JSON响应 - JSON对象数组。在FF和Chrome上测试过。 JSON键是字符串。
如何进一步调试?请告诉我。
答案 0 :(得分:0)
所以碰巧后端正在返回一个json对象。后端使用的REST框架非常灵活,我只需要在URL中用jsonp替换json。
旧网址:http:/// format / json 新网址:http:/// format / jsonp
这是REST框架 https://github.com/philsturgeon/codeigniter-restserver
感谢@dbaseman提出您的建议/意见