0

Backbone.js フェッチを機能させるのに問題があります。次のコードは、実際にはサーバー コードから json を取得しますが、それでも成功関数ではなくエラー関数になります。

サーバー コードは PHP で、ヘッダー application/json を設定し、有効な json を返します。

Javascript を実行すると、コンソール ログに次のように表示されます。

{"id":"1011"} client.js:22
{"readyState":4,"responseText":"{id: 1011,address: \"123 Main St.\"}","status":200,"statusText":"OK"} client.js:23
{"parse":true,"emulateHTTP":false,"emulateJSON":false,"xhr":{"readyState":4,"responseText":"{id: 1011,address: \"123 Main St.\"}","status":200,"statusText":"OK"}} client.js:24

$(function() {
    var Property = Backbone.Model.extend({

urlRoot: 'property'
});

var AppView = Backbone.View.extend({
el: $('#content'),
error: function(m, xhr, opts) {
    console.log(JSON.stringify(m));
    console.log(JSON.stringify(xhr));
    console.log(JSON.stringify(opts));
},
render: function() {
    alert("Success");
},
initialize: function() {
    var options = {};
    options.success = this.render;
    options.error = this.error;
    var property = new Property({id: "1011"});
    property.fetch(options);
}
    });
    var appview = new AppView;
});
4

1 に答える 1

3

OK、Backbone.js は、特定のデータが特定の形式で JSON 応答に返されることを期待しているようです。

id: 1011json 応答に含めるのではなく、返すと機能します"id": "1011"

これに関するドキュメントはどこかにありますか?それは本当に長い間私をつまずかせました。サーバーの応答に戻って、そこにあるのは正しくないものだと思っていましたが、それを理解できませんでした.

このStackOverflowの質問と回答は私を助けてくれました:model.fetchは常にエラーコールバックに行きます

うまくいけば、この質問と回答が将来誰かを助けるでしょう.

于 2013-01-26T03:06:35.690 に答える