我正在尝试获取backbone.js DELETE请求,但是在我的控制台中没有看到任何请求。
我有这样的收藏模型:
var Model = Backbone.Model.extend(
{
urlRoot: '/test',
defaults:{}
});
var TableList = Backbone.Collection.extend(
{
url: '/test',
model: Model
});
在我看来,我正在运行这个:
this.model.destroy();
一切似乎运行正常,我可以看到输出来自调用destroy的remove函数,所以我知道它已经到达那里,而且它也成功地运行了一个我有的unrender方法。看不到对服务器发出的任何请求了吗?
答案 0 :(得分:13)
如果我没有弄错,你必须在你的模型上有一个id属性,以确保它击中正确的url。 IE,如果你的模型是......
var Model = Backbone.Model.extend({
url: '/some/url'
});
var model = new Model({
id: 1
});
model.destroy(); // I THINK it will now try and DELETE to /some/url/1
如果没有id,它就不知道如何正确构建url,通常你会获取模型,或者创建一个新模型并保存它,然后你就会有一个Url ...
看看是否有帮助!
答案 1 :(得分:4)
我发现了问题的问题,认为还没有解决方案。我不确定这是否是主干的错误,但我正在使用ajaxSetup
和ajaxPrefilter
。我试着将它评论出来并且有效。我将其缩小到ajaxSetup方法,特别是使用data
参数来预设一些值。
答案 2 :(得分:1)
您是否尝试过使用成功和错误回调?
this.model.destroy({
success : _.bind(function(model, response) {
...some code
}, this),
error : _.bind(function(model, response) {
...some code
}, this);
});
如果您没有看到DELETE请求,可能会有所帮助。