【问题标题】:Fragment uri's not executed on browser片段 uri 未在浏览器上执行
【发布时间】: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


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-22
      • 1970-01-01
      相关资源
      最近更新 更多