片段uri未在浏览器上执行

时间:2012-09-04 14:04:39

标签: javascript http redirect backbone.js restlet

这是一个复杂的问题:

我分两部分实现了REST应用程序:

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

在客户端,我的Backbone App使用骨干路由器api,例如我有这个uri:

“HTTP://本地主机:8000 /对myApp /#/资源1 /属性”

这是一个Backbone路由,就像我或许,当我把这个url放在Web浏览器中时,浏览器发送到服务器:“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 /“with 307(临时重定向),并在”Location“标题中设置url。

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

也许,任何人都可以向我展示光明吗?

1 个答案:

答案 0 :(得分:1)

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

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