【问题标题】:changing URL via AJAX using wicket使用 wicket 通过 AJAX 更改 URL
【发布时间】:2011-07-04 21:54:12
【问题描述】:

在 Apache Wicket 中,有没有办法让 AJAX 调用更改当前页面 URL 而无需重定向或重新加载页面?

例如,假设我们在 url:

localhost:8080/someUrl

我希望当我点击一个 ajax 链接时,会执行一些操作,并且 url 会更改为:

localhost:8080/otherUrl

无需重定向,只需更改浏览器中显示的 url。 这甚至可能吗?

谢谢!
曼努埃尔

【问题讨论】:

  • 如果你仔细想想,如果浏览器允许这样的事情,那将是一个巨大的安全漏洞。

标签: java ajax url wicket


【解决方案1】:

其实你可以! 但这根本与 Wicket 无关。 这就是 HTML5 中新的 History API 的意义所在。 只需在 Google 中搜索“html5 History API 示例”即可享受。

【讨论】:

    【解决方案2】:

    您可以使用 javascript 更改的网址的唯一部分是哈希

    您可以将localhost:8080/#/someUrl 更改为localhost:8080/#/otherUrl

    使用window.location.hash 执行此操作

    这是一个使用此概念允许深层链接 URL 的 Flash 站点示例:http://www.2advanced.com

    【讨论】:

    • 您可以在地址栏更改 URL,正如 @martin-g 在他的回答中所说,这可以通过 History API 实现
    • 这一行是这样做的:window.history.pushState("", "", url);我更感兴趣的是如何强制 http 链接使用新 URL 中的参数而不是旧 URL。
    • 你看到这个问题的日期了吗,@AzatMartirosyan?那时 HTML5 还没有在生产中使用。
    【解决方案3】:

    帮助实现此功能,为https://issues.apache.org/jira/browse/WICKET-5290投票(或贡献!)

    【讨论】:

      【解决方案4】:

      不,不是。如果您在浏览器中更改位置,则会对该 URL 发出新请求。

      (您使用window.location.href = newUrl 执行此操作,但页面会重新加载)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-02-26
        • 1970-01-01
        • 2012-12-10
        相关资源
        最近更新 更多