我找不到任何允许我访问GWT中的referrer标头的类/方法。 有人知道吗?
答案 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();
获取问号的索引并自行解析