1

这是一个复杂的问题:

我在两部分中实现了一个 REST 应用程序:

  • 服务器:使用 Restlet 2.0.14 实现
  • 客户端:带有 Backbone.js 的 WebApp

在客户端,我的主干应用程序使用主干路由器 api,例如我有这个 uri:

“http://localhost:8000/myApp/#/resource1/attribute”

这是一个主干路由,就像我一样,当我把这个 url 放在网络浏览器中时,浏览器会发送到服务器:“http://localhost:8000/myApp/”,但第二部分(片段)用于执行当他从服务器下载应用程序时,我想它是正确的......

好吧,因为我正在使用 Restlet 实现自己的 Web 服务器,所以我想要下一个场景:

  • 当用户在他的浏览器中输入这个 url:“http://localhost:8000/myApp/resource1/attribute”时,我的服务器必须返回主干 webapp,并且浏览器需要使用片段加载正确的视图(使用路由) .

为了实现这一点,我在我的restlet服务器上实现了一个重定向,当一个传入请求到url:“http://localhost:8000/myApp/resource1/attribute”时,我将它重定向到这个url:“http://localhost :8000/myApp/#/resource1/attribute/" 带有 307(临时重定向)并在“Location”标头中设置 url。

此时一切正常,浏览器收到重定向响应,浏览器再次使用此 url 调用服务器。我在网址栏中看到重定向网址。但是,路由不起作用,我收到了 webApp,但看起来浏览器没有执行 uri 的片段。

也许,任何人都可以给我看灯?

4

1 回答 1

1

问题在于重定向中的响应 url。最后的'/'必须省略,因为backbone.router中的路由是:"resource1/:variable": "variableFunction"

在浏览器上执行的片段现在可以正常工作。

于 2012-09-04T14:16:18.180 回答