【发布时间】:2012-09-04 14:04:38
【问题描述】:
这是一个复杂的问题:
我在两个部分中实现了一个 REST 应用程序:
- 服务器:使用 Restlet 2.0.14 实现
- 客户端:带有 Backbone.js 的 WebApp
在客户端,我的 Backbone App 使用主干路由器 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 的片段。
也许,任何人都可以给我看灯?
【问题讨论】:
标签: javascript http redirect backbone.js restlet