2009-01-18 10 views
3

Dites que j'ai un site Web, www.example.com, avec une boîte de connexion qui se trouve dans un iframe situé dans api.example.com. Ma question est:Transférer des données de cookie entre les iframes

  1. Est-il possible de transmettre des données de cookie de l'iframe intérieur (api.example.com sur le site, de sorte que le site sait quand l'utilisateur connecté
  2. Est-il possible de le faire? côté client, sans avoir besoin de rafraîchir la page entière? Comment le fait que l'utilisateur connecté soit transmis au site?

Toute solution qui fonctionne sur FF et IE 6/7 serait génial.

+0

Veuillez ajouter une balise pour votre plate-forme côté serveur – AnthonyWJones

Répondre

2

Un cookie peut être partagé entre deux domaines comme api.example.com etEn faisant en sorte que le serveur spécifie le domaine de cookie pour qu'il soit simplement example.com. Cela rend le cookie disponible pour les deux sous-domaines.

FF3 et IE8 supportent ensuite la norme postMessage qui permet aux fenêtres (cadres) de différents domaines de se parler. Cependant, pour IE6/7, vous aurez besoin d'un appel AJAX au serveur pour obtenir la confirmation de connexion dont vous avez besoin, mais la chose la plus difficile serait de savoir comment déclencher une telle demande.

4

Vous n'avez pas besoin de passer le cookie entre eux. Vous devez cependant écrire le cookie dans le bon domaine.

Response.Cookies("COOKIENAME").Domain = ".example.com" 
Response.Cookies("COOKIENAME").Value= "foo"