2012-09-04 35 views
2

执行这要问一个复杂的问题:片段的URI不能在浏览器

  • 服务器:与2.0.14的Restlet实现
  • 客户

    我在2份implented REST应用程序: Web应用程序与Backbone.js的

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

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

这是一个主干航线,像我或许,当我在Web浏览器把这个URL,浏览器向服务器发送:“http:// localhost:8000/myApp /”,但是当他从服务器上下载应用程序时执行它的第二部分(片段),我想这是正确的...

嗯,因为我实施具有的Restlet自己的Web服务器,我想在下一个场景:

  • 当用户在浏览器把这个网址:“HTTP://本地主机:8000 /对myApp /资源1 /属性”我的服务器必须返回骨干网络应用程序,并且浏览器需要使用片段加载正确的视图(使用路由)。

要实现这一点,我实现了一个重定向我的Restlet服务器,当传入请求的URL:“HTTP://本地主机:8000 /对myApp /资源1 /属性”我把它重定向到这个网址:使用307(临时重定向)“http:// localhost:8000/myApp /#/ resource1/attribute /”,并在“位置”标题中设置网址。

这一切都正确,浏览器接收到重定向的响应,浏览器再次使用此URL调用服务器。我在url栏中看到重定向url。 但是,路由不起作用,我收到webApp,但它看起来像浏览器不执行uri的片段。

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

回答

1

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

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