如何在Gwt入口点获取referrer http头

如何在Gwt入口点获取referrer http头,gwt,http-headers,Gwt,Http Headers,我在GWT中找不到任何类/方法可以访问referer头。 有人知道这一点吗?因为您无法在javascript中获取标题,我认为您也无法在GWT客户端中获取它们: 更新: 也许您可以更新login.php,将referer写入隐藏的输入标记,可能是这样的: <input type="hidden" name="referrer" name="referrer" value="<?php Print referrer_value ?>"> InputElement elt

我在GWT中找不到任何类/方法可以访问referer头。
有人知道这一点吗?

因为您无法在javascript中获取标题,我认为您也无法在GWT客户端中获取它们:

更新:

也许您可以更新login.php,将referer写入隐藏的输入标记,可能是这样的:

<input type="hidden" name="referrer" name="referrer" value="<?php Print referrer_value ?>">
InputElement elt = (InputElement)Document.get().getElementById("referrer")
String referrer = elt.getValue()
注意:这是未经测试的代码,我甚至不确定这是有效的php,但希望这有帮助

Document.get().getReferrer()

我有同样的问题,但我做了一些改变,以收费的标题链接标签DINAMICALY。 我使用了以下代码:

LinkElement link = Document.get().createLinkElement();
link.setHref("css/home.css");
我不知道这是否是最优雅的解决方案,但它确实有效

编辑: 如果需要修改任何当前图元,应执行以下操作:

NodeList<Element> links = Document.get().getElementsByTagName("link");
for(int i = 0; i < links.getLength(); i++){
    LinkElement l = (LinkElement)links.getItem(i);
    if( l.toString().contains("href_to_replace.css") ){
        l.setHref("new_href.css");
        break;
    }
}
nodelistlinks=Document.get().getElementsByTagName(“链接”);
对于(int i=0;i
您可以访问JavaScript中的引用并将其传递给Java(而不是从Java编译的JavaScript)。您需要使用JavaScript定义在Java中定义JSNI(JavaScript本机方法)方法。这段代码可以访问浏览器的文档和窗口对象,尽管为此需要分别使用$doc和$wnd变量。 更多信息请访问


您可以获得完整的URL字符串,如下所示:

字符串url=Document.get().getURL()


获取问号的索引并自己解析它

我有一个页面login.php,它重定向到gwt应用程序。难道我不能得到“somedomain/login.php”的推荐人标题吗?甚至在入口点类中也不可能?不,即使在入口点类中也不可能获得任何请求头,因为记住,“客户端”包下的所有java代码实际上都编译成javascript代码。但是,您可以使用login.php将数据发送到gwt生成的javascript。也许您可以将referer数据写入login.php返回的页面dom中的某个元素,然后通过这种方式从gwt访问它。谢谢。我在登录表单中添加了一个额外的输入元素。:)这似乎是正确的答案-这是我糟糕的导航技术。这很有效。@Kieveli我也有同样的问题,它总是为我返回空白!你能和我分享一下你所说的“糟糕的导航技术”是什么意思,以及你是如何解决的吗?非常感谢。该网页必须由网络服务器提供服务。我在桌面上使用“test.html”进行测试。一旦你在一个由web服务器提供服务的测试页面上,那么你点击的链接将导致referer被设置。