【问题标题】:How Can I get exact same full url as when someone hit to get my Rails app如何获得与有人点击获取我的 Rails 应用程序时完全相同的完整 URL
【发布时间】:2019-02-28 16:33:15
【问题描述】:

当有人点击获取我的应用程序时,我想在我的 rails 应用程序中获取完整的 URL。像。 有人在浏览器中点击了 URL。

http://localhost:3000/ 所以我可以在request.original_url 的帮助下在rails 应用程序中得到这个,这给了我正确的结果。

但是当有人点击http://localhost:3000/#log-25 这样的网址时,request.original_urlthis 并没有给我准确的网址,它只返回http://localhost:3000/,但我也需要#log-25 这部分。

那么我怎样才能获得与浏览器完全一样的完整 URL,请帮助我。

【问题讨论】:

  • @zeitnot 所以这意味着没有 js 就没有解决方案。但是如果我用 js 处理这种情况,那么问题是我再次调用了我的服务器,我认为这不是一个好的方法。
  • 为什么在控制器中关心锚?这对我来说听起来像是xy problem。你想达到什么目标?想对控制器中的这些信息做什么?

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-4 url


【解决方案1】:

# 部分实际上并未发送到服务器,它是一个 fragment,用于页面内导航等,并且仅与浏览器相关。

如果您需要包括片段在内的全部内容,您将需要一些 JavaScript 代码来编码并通过 HTTP 请求之外的另一个通道提供它,而 HTTP 请求会被有意剥离。

【讨论】:

  • 所以这意味着没有js没有解决方案。但是如果我用 js 处理这种情况,那么问题是我再次调用了我的服务器,我认为这不是一个好的方法。
  • 这是你所坚持的,因为片段不应该被服务器看到,它应该只是客户端。不幸的是,标准就是这样,所以除非你想申请改变标准并等待十年才能被采用,否则你就会被这个困住。如果您对 URI 有任何控制权,请提出一个不涉及片段的方案来绕过此限制。
猜你喜欢
  • 1970-01-01
  • 2022-08-05
  • 2011-03-15
  • 1970-01-01
  • 2021-10-24
  • 2018-12-24
  • 2016-12-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多