我尝试过这样的发送请求。
本地主机:3000 / WS / job_histories /索引的agent_id =#1000
但是在控制器上我已经收到agent_id=''
或者喜欢这个
本地主机:3000 / WS / job_histories /索引的agent_id = 10#00
我已收到agent_id='10'
。我认为问题是因为Rails像评论一样理解它。
我怎样才能正确接收我的数据。 Rails并没有给我任何例外。
答案 0 :(得分:6)
哈希符号为fragment identifier,您的浏览器不会将其发送到网络服务器。
如果您想发送它,则需要对其进行网址编码(%23
),您可以使用CGI.escape('#')
实现此目的。
答案 1 :(得分:5)
这是完全正常的,哈希属于客户端,它们不会发送到服务器。
而#
代表一个哈希,所以删除它或编码它
答案 2 :(得分:4)
散列片段不会从浏览器发送到服务器,因此对于任何服务器端框架而言,这都不会起作用,而不仅仅是Rails。
来自Wikipedia, Fragment identifiers:
客户端在检索文档时不应该向服务器发送URI片段......
来自URL Fragments and Redirects:
URL的Fragment组件是从哈希符号(#)开始的URL的结尾。 URL片段永远不会在HTTP请求中发送到服务器......