如何在Gwt Entrypoint获取referrer http标头

时间:2011-01-19 18:43:10

标签: gwt http-headers

我找不到任何允许我访问GWT中的referrer标头的类/方法。 有人知道吗?

5 个答案:

答案 0 :(得分:7)

Document.get().getReferrer()

答案 1 :(得分:2)

由于你无法在javascript中获取标题,我认为你不能在GWT客户端中获取它们:Accessing the web page's HTTP Headers in JavaScript

更新:

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

<input type="hidden" name="referrer" name="referrer" value="<?php Print referrer_value ?>">

然后,在gwt中,您应该能够使用以下内容获取值:

InputElement elt = (InputElement)Document.get().getElementById("referrer")
String referrer = elt.getValue()

注意:这是未经测试的代码,我甚至不确定它是否有效,但希望这有帮助!

答案 2 :(得分:0)

我有同样的问题,但是我做了一些更改来对标题链接标记进行动态收费。 我用了这段代码:

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;
    }
}

答案 3 :(得分:0)

您可以使用JavaScript访问referrer并将其传递给Java(而不是Java编译的JavaScript)。您需要使用JavaScript定义在Java中定义JSNI(JavaScript Native Method)方法。此代码可以访问浏览器的文档和窗口对象,但您需要分别使用$ doc和$ wnd变量来实现此目的。 更多信息在

https://developers.google.com/web-toolkit/doc/latest/DevGuideCodingBasicsJSNI

答案 4 :(得分:0)

您可以像这样获取完整的URL字符串:

  

String url = Document.get()。getURL();

获取问号的索引并自行解析