我的问题是,Backbone尝试在结尾处带有斜杠的URL上执行HTTP请求,如下所示:
:8000/api/v1/update/2/
出于某种原因,Django(或asteapie)不接受以斜杠结尾的URL,因此上述URL无法使用,但该URL可以使用:
:8000/api/v1/update/2
当不使用覆盖的同步时,Backbone-tastypie会退回到oldSync,这是Backbone随附的原始同步。我相信,当Backbone-tastypie使用oldSync时,它会在URL的末尾添加一个斜杠,这是我不希望的。
建议的大多数解决方案都在解决我遇到的相反问题。他们正在尝试解决斜杠有效的问题,但是没有斜杠无效。
除了非跟踪斜杠之外,我还需要能够支持结尾斜杠。这可以通过两种方式解决:
这些方法中的任何一个都可以解决我的问题,但是我无法弄清楚如何实现其中的任何一个。
最佳答案
对于Backbone
解决方案:
您可以覆盖Model.url
的默认行为,甚至可以使用普通的Collection
并进行少量修改,例如您要查找的修改:
// code simplified and not tested
var MyModel: Backbone.Model.extend({
url: function() {
var original_url = Backbone.Model.prototype.url.call( this );
var parsed_url = original_url + ( original_url.charAt( original_url.length - 1 ) == '/' ? '' : '/' );
return parsed_url;
}
});
ojit_code同样适用。