使用jsonp的backbone.js

时间:2012-12-19 13:13:40

标签: javascript json backbone.js jsonp

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

以下是代码:

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键是字符串。

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

1 个答案:

答案 0 :(得分:0)

所以碰巧后端正在返回一个json对象。后端使用的REST框架非常灵活,我只需要在URL中用jsonp替换json。

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

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

感谢@dbaseman提出您的建议/意见