J'ai plusieurs portlets dans mon application. Si j'ouvre une URL en utilisant la méthode window.open(), l'identifiant de session change et provoque une erreur dans les autres portlets. Si je n'ouvre pas cette URL, tout fonctionne bien. Mais une fois cette nouvelle fenêtre ouverte, la session est effacée et le reste des portlets lève une exception car certaines valeurs sont manquantes. Dans la barre d'adresse du navigateur j'ai tapé javascript: alert (document.cookie); pour voir le JSESSIONID. Il reste constant sur toute la page et change lorsque je clique sur le lien qui lance une nouvelle URL dans une nouvelle fenêtre. J'ai utilisé IE8. Toutes les suggestions pour maintenir l'état de la session dans IE seraient grandement appréciées.window.open() efface la session
Répondre
Quelle URL transmettez-vous à window.open()? Un moyen facile d'obtenir IE 8 pour maintenir le JSESSIONID dans le popup serait d'utiliser une URL relative dans l'appel à window.open() dans le balisage du portlet. L'essentiel est que le nom de domaine reste exactement le même. Voici un exemple d'un bouton avec window.open() en cas onclick:
<button onclick="javascript:window.open('/wps/portal')">Home Page</button>
J'utilise Websphere Portal, donc '/ wps/portail' liens juste la page d'accueil.
En outre, qu'avez-vous l'intention d'être la cible de la fenêtre contextuelle? Une page de portail différente avec la même session?
Mise à jour: Étant donné que la cible des window.open() est une application web indépendant hébergé sur le même domaine ...
Le serveur de portail et le serveur d'applications hébergeant l'application Web ont des sessions indépendantes , mais ils utilisent tous les deux un cookie appelé JSESSIONID par défaut. La première fois que vous accédez à l'application Web, le serveur d'applications écrase le cookie du portail, entraînant ainsi l'échec de toute demande ultérieure au portail. Quand cela m'est arrivé, ma solution était de configurer le portail pour qu'il nomme un autre cookie de session (par exemple PORTALSESSIONID) afin que les deux ne soient pas en conflit.
- 1. Perdre l'état de la session après la fermeture d'une fenêtre ouverte avec window.open
- 2. Javascript window.open Dimensions
- 3. javascript window.open() et # symbole
- 4. ie8 var w = window.open() - "Message: argument invalide."
- 5. window.open ne fonctionne pas dans firefox
- 6. Iphone Search Bar efface le bouton écrasant l'application
- 7. xcode build sur iphone testbed efface les fichiers de documents
- 8. Est-ce que removeChildAt() efface les ressources cpu?
- 9. Comment faire pour que log4j efface un journal au démarrage?
- 10. abandonner la session dans asp.net sur le navigateur fermer..aider cookie de session
- 11. Détruire la session $ _SERVER?
- 12. Dans Firefox, la modification d'une plage clonée à partir de la sélection efface la sélection la première fois
- 13. Partage de l'état de session ASP.NET avec la session WCF
- 14. NH Demande par session - "La session est fermée!"
- 15. pour se concentrer sur la fenêtre window.open et la fenêtre courante
- 16. Modification de la fenêtre ouverte par la fonction "window.open()" de javascript
- 17. Personnalisé RoleProvider utilisant la session
- 18. Stockage panier dans la session
- 19. Expiration de la session Django?
- 20. Asp.Net MVC et la session
- 21. "La session est fermée!" - NHibernate
- 22. Qu'est-ce qui ne va pas avec window.open ici?
- 23. redirection web avec JS Une bonne window.open appel
- 24. window.open() renvoie undefined ou null sur le 2ème appel
- 25. session
- 26. hibernate Ouvrir la session dans la vue
- 27. IE8 - window.open() - "Une telle interface prise en charge"
- 28. Comment utiliser 'window.open' pour créer avec scrollbar dans firefox?
- 29. Popup bloqué, jquery window.open en succès: AJAX? à l'extérieur ok
- 30. L'application ASP.NET passe à 500.21 ... jusqu'à ce que IIS Reset + Efface Tempoary Cache ASP.NET
Merci pour la réponse ... Je passe l'url complète en tant que paramètre à la méthode open(), mais le nom de domaine est exactement le même que celui du parent. Je vais essayer votre suggestion aussi. La cible n'est pas une page de portail, mais une application Web différente hébergée sous le même domaine, par exemple si le domaine principal est example.com, j'ouvre example.com/app/index.jsp – jobinbasani
Je pense qu'il peut y avoir un conflit de noms avec le cookie JSESSIONID. J'ai mis à jour cette réponse avec quelques détails supplémentaires. – cc1001