【问题标题】:Unknown token in URL in railsRails 中 URL 中的未知标记
【发布时间】:2014-05-14 09:03:36
【问题描述】:

每当我提交表单时,都会在 url 的 params 中附加一个未知片段。但是那个片段的目的是什么?以及如何摆脱它?请参考以下示例网址。

通过令牌,我指的是以下 URL 中的“#.U3Mw4XKHbFY”

这是网址示例

www.domain.com/posts?utf8=%E2%9C%93&query=surf&area=All+Area#.U3Mw4XKHbFY

<%= form_tag posts_path, method: 'get', class: "search_keywords_form" do %>
  <%= text_field_tag :query, nil, class: "search-field", placeholder: "Search Item for swap" %>
  <%= hidden_field_tag 'area', "All Area" %>  
  <input type="submit" class="search-btn" value="" />

  <div class="clearfix"></div>
  <div class="push"></div>
<% end %>

另一个奇怪的事情是当我查看参数时,我没有得到它。但是当页面重新加载时,那个未知的属性会被附加。

params = { "utf8"=>"✓",
           "query"=>"surf",
           "area"=>"All Area",
           "action"=>"index",
           "controller"=>"posts"
         }

【问题讨论】:

  • 您能否在对您的问题进行编辑时添加作为提交此表单的结果(从您的服务器日志复制)而来的参数哈希?
  • 更新了问题,奇怪的是我在参数中没有得到它。
  • 哪个令牌?你指的是主播吗?
  • @mdesantis,我的意思是 "#.U3Mw4XKHbFY" url 的最后一部分

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


【解决方案1】:

我也不得不面对这个问题,这绝对是 JS 问题,可能是一些插件会附加这个。

对此的简单解决方案是将location.hash = "" 放入您准备好文档的js 文件中。是的,我记得,当您使用某些跟踪系统时,会附加此片段。喜欢谷歌分析或Addthis

【讨论】:

  • 谢谢你是因为AddThis而附加了正确的片段
【解决方案2】:

你说的是fragment part of an URI。 URI 的片段部分指的是 HTML 内容响应的某些部分,仅在客户端处理:这就是为什么您不 - 而且您不能 - 在服务器端查看或处理它的原因.

片段出现是因为它出现在 HTML 表单中的某处,或者因为某些客户端代码(也称为 JavaScript)将其设置为表单 URL。

我感觉我已经在某处看到了那个片段模式,但我不记得在哪里......

【讨论】:

  • hmm,现在你提到它,我想我也见过这样的事情:在使用相同 url(通过 ajax)加载不同内容的页面中,有用于页面跟踪的 javascript 解决方案(例如用于谷歌分析)将片段标识符添加到 url 作为记录活动的一种方式。
  • 与其将 JS 注释掉,不如尝试在浏览器设置中关闭 JS,从头开始进入页面并再次提交表单。
  • 另外,在 HTML 页面源代码中搜索该标记
  • 谢谢大家,这是因为 AddThis 的问题
猜你喜欢
  • 2013-04-15
  • 2014-03-03
  • 2016-12-07
  • 2023-03-25
  • 2014-11-30
  • 1970-01-01
  • 2014-07-05
  • 2013-10-23
  • 2013-07-13
相关资源
最近更新 更多