我使用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!
答案 0 :(得分:1)
您无法使用GWT的当前(2.5)历史记录API清除查询参数,因为它基于fragment IDs(URI的最后部分,在“#”之后)。预测HTML5 History API,片段ID更改是对URI的唯一编程更改,无需重新加载您的Web应用即可。
由于Johannes Barop的browsers which support it库,目前可以利用您的GWT应用程序(gwt-pushstate)中的HTML5历史记录API。它可能会帮助您在不重新加载应用程序的情况下删除查询参数。
以下是用于测试HTML5 History API支持的handy page。
答案 1 :(得分:0)
使用History#newItem(java.lang.String historyToken,boolean issueEvent)
并将您的issueEvent设置为false