Mat*_*gin 1 java jquery url-routing fragment-identifier playframework
我正在使用jQuery地址库来重写我的URL,具体取决于用户在页面中执行的操作.目的是允许用户为页面添加书签并稍后返回.页面永远不会刷新,因为所有服务器交互都是通过ajax完成的.
jQuery Address正在写这样的URL:
HTTP://本地主机:9000 /#/ U/scott_tiger
我需要在Play中设置路由,以便能够将该请求路由到适当的控制器.所以我设置了这个:
GET /#/u/{username} Controller.showUser
Run Code Online (Sandbox Code Playgroud)
但这不起作用,路由定义被忽略.我尝试过很多东西,例如试图逃避"#"并用一个我用Character.toString(35)填充的变量替换它.这些都不起作用.
有谁知道如何正确定义路由或获取jQuery地址不写"#".
编辑:"#"没有被发送到服务器做它.卫生署!好的,问题被修改了.
号的#,之后的URL的一部分不发送到服务器.所以你在服务器上的播放应用程序永远不会看到这样的URL.
您需要使用JavaScript在客户端处理这些URL.在具有良好HTML5支持的现代浏览器中,您可以修改地址而无需重新加载页面.请参阅操作浏览器历史记录,了解如何为这些浏览器执行此操作.并查看我何时可以使用...来支持浏览器.
在Internet Explorer和其他浏览器的旧版本上,您需要使用#URL并使用JavaScript加载状态(例如,/u/scott_tiger在您的示例中获取用户页面).请参阅当用户使用JQuery访问哈希链接(#something)时如何运行JavaScript函数?如何在JavaScript中执行此操作.此外,如果用户使用#-URL 为页面添加书签,则需要重新加载状态.
另请参阅:Facebook中的shebang/hashbang(#!)和新的Twitter URL是什么?
您可以使用JavaScript库来为您处理历史.js就是一个例子.像Backbone.js这样的大型框架也可以处理这个问题.
有谁知道我怎么能得到jQuery地址不写"#".
如果不编写#URL 的-part,则无法链接状态.因此,如果您为页面添加书签,则无法返回到例如Scott Tigers个人资料页面,因为该URL仅用于http://localhost:9000/您,而您将到达首页,而用户虽然会到达个人资料页面.
| 归档时间: |
|
| 查看次数: |
2402 次 |
| 最近记录: |