【问题标题】:Rails request parameters ignored when anchor present当锚点存在时,Rails 请求参数被忽略
【发布时间】:2013-04-21 15:35:05
【问题描述】:

我有一个请求进入我的 rails 3 应用程序:

http://mydomain/controller/action#an_anchor?p1=1&p2=2&p3=3

我的路线:

match '/controller/:action' => 'controller'

路由成功找到我的控制器和动作,但参数为空。 (几乎是空的,params 包含控制器和动作,但没有传入的参数)。

好像 # 后面的 url 上的所有内容都被删除了。我希望系统会忽略 #...?,但仍会给出我的查询参数。

我也试过这条路线:

match '/controller/*stuff' => 'controller'

并且“stuff”在参数中直到 # 。 # 之后的所有内容都消失了,包括 url 参数。

这是一个错误吗?是否有任何方法可以在 url 中传递锚标记并仍然提取查询参数?

(补充:)此网址来自 PayPal,作为其嵌入式购物车的一部分。我无法控制字符串上字段的顺序,我不能成为唯一使用贝宝迷你购物车的人。实际的 url 值为:

.../paypal#PPMiniCart=reset?tx=4NH71321AG6850224&st=Completed&amt=2.73&cc=USD

【问题讨论】:

    标签: ruby-on-rails routing


    【解决方案1】:

    # 之后的所有内容都被删除 - 浏览器不会将 URL 的片段部分发送到服务器。

    如果您希望将这些参数视为查询字符串的一部分,它们必须在 # 之前

    【讨论】:

    • 是的。 IE。参数没有被剥离,但它们被解释为锚的一部分。您的计算机将锚点视为an_anchor?p1=1&p2=2&p3=3
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-17
    • 1970-01-01
    • 2011-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多