我无法让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;
});
答案 0 :(得分:3)
好的,似乎Backbone.js期望某些数据以特定格式返回JSON响应。
不是在我的json响应中包含id: 1011
,而是在我返回"id": "1011"
这个地方有文件吗?它真的让我绊倒很长一段时间。我一直回到我的服务器响应,认为那里的东西不太正确,但我无法弄明白。
这个StackOverflow问答虽然帮助了我:model.fetch always going to error callback
希望这个问题和答案能在将来帮助其他人。