2

在花了几个小时寻找解决方案之后,我终于在这里发布了问题。让我知道我的愚蠢程度:)。

这是代码:

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":"success"}。

错误回调总是被调用。我对后端没有太多控制权。只需确保完成以下检查:

服务器以正确的 JSON 响应 - JSON 对象数组。在 FF 和 Chrome 上测试。JSON 键是字符串。

我该如何进一步调试呢?请告诉我。

4

1 回答 1

0

所以碰巧后端返回了一个 json 对象。后端使用的 REST 框架非常灵活,我所要做的就是将 URL 中的 json 替换为 jsonp。

旧网址:http:///format/json 新网址:http:///format/jsonp

这是 REST 框架 https://github.com/philsturgeon/codeigniter-restserver

感谢@dbaseman 的建议/评论

于 2012-12-20T06:22:04.370 回答