哈希标志后获取请求部分
我的网站采用AJAX驱动的搜索,使用深层链接。 当用户关注链接时……
http://example.com/articles#/?tags=Mac%20OS,review
…标签“Mac OS”和“评论”应该已经在搜索表单中选择,并且应该在页面上显示与“Mac OS”和“评论”相关的文章。
我有以下情况,需要修复
- 用户可以访问http://example.com/articles#/?tags=Mac%20OS链接
- 在初始页面呈现期间,将获取所有文章
- 在客户端,解析散列部分,并且仅通过AJAX请求与“Mac OS”相关的文章。
- 客户端收到“Mac OS”文章并替换在步骤2中获取的所有文章。此外,它还在搜索表单上标记“Mac OS”标记。
这里的问题 – 重复的文章渲染,对用户来说看起来非常糟糕。 他查看了所有文章,几秒后,它们将被替换为“Mac OS” – 文章。
我需要有以下场景:
- 用户可以访问http://example.com/articles#/?tags=Mac%20OS链接
- 服务器解析散列部分并返回与“Mac OS”相关的文章
- 客户理解,“Mac OS” – 文章已经存在并且什么都不做。 它只是将“Mac OS”标记标记为已选中。
为此,我需要获取请求字符串的哈希部分:
/?tags=Mac%20OS
我之后不能使用请求参数,因为我使用AJAX和深层链接。 使用?-part,浏览器将被强制重新加载页面。 我需要做任何事情而无需重新加载页面。
非常感谢您的帮助。
谢谢。
散列后URL的一部分未发送到服务器,因此您无法在那里处理它。 您可以在创建Ajax请求的客户端代码中提取URL的该部分,并将其作为参数发送。
@NickFitz是正确的,但是如果你必须发送#hash / pound符号之后的任何内容,你可以使用代表#
的URL编码字符,即%23
。
所以%23
和%23
之后的任何内容都将被发送到服务器。 如果您使用的是现代Web服务器,他们会自动识别%23
是#
。 在Ruby on Rails中,Rack为您完成此任务。
- 从javascript onclick发出ajax请求
- Rails – 通过选择下拉菜单执行ajax调用
- Rails:在textfield中执行onchange远程函数时如何从另一个字段获取值
- Rails 4:如何通过AJAX更新基于另一个collection_select的collection_select?
- Rails:用户使用以下命令销毁不相关的对象后退出:remote => true
- Ajax-submit表单上的“复选框onclick”:为什么会出现此错误?
- 将HTML返回给AJAX Rails调用
- Sinatra不显示POST数据
- Rails 2到Rails 3:使用link_to而不是link_to_remote(包括远程和更新)