【发布时间】:2012-05-20 07:43:34
【问题描述】:
我的问题是 Backbone 正在尝试对末尾带有斜杠的 URL 执行 HTTP 请求,如下所示:
:8000/api/v1/update/2/
由于某种原因,Django(或美味派)不接受末尾带有斜杠的 URL,所以上面的 URL 不起作用,但这个 URL 可以工作:
:8000/api/v1/update/2
Backbone-tastypie 回退到 oldSync,这是 Backbone 附带的原始同步,当不使用其覆盖的同步时。我相信当 Backbone-tastypie 使用 oldSync 时,它会在 URL 的末尾附加一个斜杠,这是我不想要的。
建议的大多数解决方案都是针对我遇到的相反问题。他们正在尝试解决尾部斜杠有效但没有尾部斜杠不起作用的问题。
除了非尾随斜杠之外,我还需要能够支持尾随斜杠。这可以通过两种方式解决:
如何更改主干代码,以便没有 AJAX 调用在末尾附加斜线?
如何让 Django/tastypie 将上述两个 URL 视为相同?
其中任何一个都可以解决我的问题,但我无法弄清楚如何实施其中任何一个。
【问题讨论】:
-
你看过这个模块吗? github.com/PaulUithol/backbone-tastypie
-
@thedjpetersen 我现在正在使用 Paul 的骨干美味。它一直有效,直到主干美味使用 Backbone.sync 因为默认 URL 的末尾附加了一个斜杠。我有 fguillen 发布的链接的相反问题。我只能支持末尾没有斜杠的 URL。在上面的链接中,它们似乎只支持末尾带有斜杠的 URL。
-
抱歉,我想我不明白:您是否要在 URL 末尾添加斜杠?
-
@fguillen 我不想在 URL 的末尾加上斜杠。当 Backbone 使用 oldSync 时,它会向末尾带有斜杠的 URL 发出 HTTP 请求。不幸的是,Django(或 Tastypie)不喜欢 URL 末尾有斜杠。我将在原始帖子的正文中添加更多详细信息。
标签: javascript django backbone.js tastypie