0

我用 get 请求和一些参数调用我的应用程序......我可以毫无问题地检索它们,但随后应用程序继续使用 url 中的参数。

我在开发模式下得到这个

myapp?name=...&pass=...

我只需要删除该行:“?name=...&pass=...”。无需刷新我的应用程序。

谢谢!

更新:不过,在大多数浏览器中,有一种称为 pushState 的新机制,因此您可以将 url 更改为任何值而无需重新加载页面。GWT 还没有任何包装器,但是您可以通过 JSNI 使用它,或者,如果您希望将 gwtquery 添加到您的项目中,请使用以下代码:

import static com.google.gwt.query.client.GQuery.*;

Properties history = JsUtils.prop(window, "history");
JsUtils.runJavascriptFunction(history, "pushState", null, null, "whatever.html?foo=true");

只有一个问题...不能与 CHROME 一起使用!

4

2 回答 2

1

您无法使用 GWT 的当前 (2.5) History API 清除查询参数,因为它基于片段 ID(URI 的最后一部分,在“#”之后)。在HTML5 History API之前,片段 ID 更改是唯一可以在不重新加载 Web 应用程序的情况下对 URI 进行的编程更改。

借助Johannes Barop 的gwt-pushstate库,目前可以在您的 GWT 应用程序(在支持它的浏览器中)中利用 HTML5 History API 。它可能会帮助您满足在不重新加载应用程序的情况下删除查询参数的要求。

这是一个方便的页面,用于测试 HTML5 History API 支持。

于 2013-07-21T13:34:48.293 回答
0

使用History#newItem(java.lang.String historyToken,boolean issueEvent)并将您的 issueEvent 设置为false

于 2013-07-19T05:23:40.850 回答