我尝试使用Backbone.js模型与服务器同步数据。但是保存方法不起作用。任何人都可以帮我找出原因吗?
以下代码有效(不使用Backbone模型):
var newComment = {
user: user,
createdDate: date,
content: text
}
//TODO send ajax post request to record the data
$.ajax({
url: "comment.php",
context: document.body,
data: newComment,
type: 'POST'
}).done(function(resp) {
console.log("resp", resp);
});
代码不起作用:
var Comment = Backbone.Model.extend({
urlRoot: 'comment.php'
});
var comment = new Comment();
comment.save({content: text, dsm_line_item_id: "49934380"}, {
succcess: function(model, resp, opt) {
console.log("successfully saved" + resp);
},
error: function(model, resp, opt) {
console.log("error", resp);
}
})
答案 0 :(得分:3)
succcess: function(model, resp, opt) {
这是一个错字
原定为success: function(model, resp, opt) {
答案 1 :(得分:0)
这是猜测,但我认为这可能就是答案。 Backbone的save
委托给Backbone.sync
,这是Backbone用于读取或保存模型到服务器的功能。
Backbone使用POST,GET,DELETE和PUT;但是有些服务器在PUT和DELETE方面存在问题。也许您的服务器有PUT问题,这就是您的代码无法正常工作的原因。
您可以尝试使用Backbone.emulateHTTP = true;
。该选项允许您使用不支持Backbone的RESTful方法的旧Web服务器。在同步过程中,PUT和DELETE将由POST替换。