2

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

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

我的路线:

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

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

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

我也试过这条路线:

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

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

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

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

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

4

1 回答 1

4

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

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

于 2013-04-21T15:45:01.183 回答