2011-01-19 3 views

Répondre

7

Voir

Document.get().getReferrer() 
+0

Cela semble être une réponse valide http://stackoverflow.com/questions/220149/how-do-i-access-the-http-request-header-fields-via-javascript/220169#220169 – Reddy

+0

Il semble toujours être vide pour moi ... – Kieveli

+0

Oups - c'était mes techniques de navigation pauvres. Cela fonctionne très bien. – Kieveli

2

Puisque vous ne pouvez pas obtenir les en-têtes en javascript, je ne pense pas que vous pouvez les obtenir dans un client GWT soit: Accessing the web page's HTTP Headers in JavaScript

Mise à jour:

Peut-être que vous pouvez mettre à jour login.php écrire le referrer à une balise d'entrée cachée, peut-être quelque chose comme ceci:

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

Puis, en GWT, vous devriez être en mesure d'obtenir la valeur en utilisant quelque chose comme ceci:

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

Note: Ceci est du code non testé, et je ne suis même pas sûr que c'est php valide, mais j'espère que cela aidera!

+0

Je login.php la page qui redirige vers une application GWT. Ne serai-je pas en mesure d'obtenir l'en-tête de referrer qui dit "somedomain/login.php"? Pas même dans la classe des points d'entrée? – Rohan

+0

Non, il ne sera pas possible d'obtenir des en-têtes de requête même dans la classe entrypoint car, rappelez-vous, tout le code java sous le paquet "client" est en fait compilé en code javascript. Mais, ce que vous pouvez faire est d'utiliser login.php pour envoyer les données au javascript généré par gwt. Peut-être que vous pourriez écrire les données de référence à un élément à l'intérieur de la dom de la page retournée par login.php et y accéder à partir de gwt de cette façon. – Upgradingdave

+0

J'ai ajouté du code à ma réponse, j'espère que ça aide! – Upgradingdave

0

J'ai eu la même question, mais je fait quelques changements pour charger la balise de lien d'en-tête dinamically. J'ai utilisé ce code:

LinkElement link = Document.get().createLinkElement(); 
link.setHref("css/home.css"); 

Je ne sais pas si la solution la plus gracieuse, mais il fonctionne!

EDIT: Si vous avez besoin de modifier tout élément en cours, vous devriez le faire:

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

Vous pouvez accéder à la referrer en JavaScript et le transmettre à Java (plutôt JavaScript compilé à partir de Java) . Vous devez définir une méthode JSNI (JavaScript Native Method) en Java avec une définition JavaScript. Ce code peut accéder aux objets de document et de fenêtre du navigateur, bien que vous deviez respectivement utiliser les variables $ doc et $ wnd à cette fin. Plus d'infos sur

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

0

Vous pouvez obtenir la chaîne complète d'URL comme ceci:

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

obtenir l'indice d'un point d'interrogation et d'analyser par vous-même

Questions connexes