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);
  }
});

結果: error{"readyState":4,"status":200,"statusText":"success"}.

エラーコールバックは常に呼び出されています。私はバックエンドをあまり制御できません。次のチェックが行われていることを確認してください。

サーバーは正しい JSON (JSON オブジェクトの配列) で応答します。FF と Chrome でテスト済み。JSON キーは文字列です。

これをさらにデバッグするにはどうすればよいですか? 私に教えてください。

4

1 に答える 1

0

そのため、バックエンドが json オブジェクトを返すことが起こりました。バックエンドで使用される REST フレームワークは非常に柔軟であるため、URL の json を jsonp に置き換えるだけで済みました。

古い URL : http:///format/json 新しい URL : http:///format/jsonp

REST フレームワークはこちら https://github.com/philsturgeon/codeigniter-restserver

提案/コメントをありがとう@dbaseman

于 2012-12-20T06:22:04.370 に答える