2009-05-13 29 views
0

je préférences de l'utilisateur (couleur, les paramètres régionaux) sur example.com que je voudrais migrer vers example2.comdupliquer les cookies vers un autre domaine

Je me demande si je peux utiliser AJAX ou un iFrame caché à Transmettez les informations sur les cookies de example.com à example2.com, puis définissez un autre cookie avec les mêmes informations sur example2.com. Je sais que je pourrais le faire facilement via la chaîne d'URL et une redirection, mais je voudrais le faire en arrière-plan si possible - pas de redirections - et doit travailler sur les principaux navigateurs (IE6 +, FF1.5 +, Safari, Opera)

Point est ce cookie l'information n'est pas sécurisée donc il n'y a aucun risque là.

Répondre

1

Installation d'un chemin sur example.com qui génère un fichier javascript contenant les biscuits transmis. Disons qu'il est example.com/get_cookie.js

Ensuite, vous pouvez faire un appel ajax de example2.com l'exemple .com/get_cookie.js pour obtenir ces cookies et les enregistrer sous example2.com. Comme il s'agit d'un domaine inter-domaines, vous ne pouvez pas utiliser XHR (XmlHttpRequest), vous devez ajouter append_cookie.js en tant que noeud javascript, et ce fichier javascript devra appeler un rappel pour vous transmettre les données .

Alors get_cookie.js regarderaient somthing comme:

return_data('here is my example.com cookie info'); 
+0

bonne idée - merci – stunnaman

2

Cela dépend de la configuration du navigateur pour les démarreurs, si le navigateur est configuré pour rejeter les cookies tiers, vous n'avez pas de chance.

En supposant que vous contrôlez example.com et que le cookie n'est pas un cookie HTTP uniquement, vous pouvez ajouter un script. Le script écrirait une balise img pointant vers un script sur example2.com, avec le fichier document.cookies comme paramètre. Dans le script, écrivez un gif transparent 1x1 et attachez le cookie de l'exemple à la réponse, après avoir analysé la chaîne de paramètres pour extraire les paires nom/valeur du cookie.

+0

grâce, encore un peu confus par ce - la valeur du cookie sont envoyés à la demande de 1x1 (example2.com/1x1.gif?setting1=this&setting2=this) 1x1.gif charge en fait un script qui définit un cookie provenant de example2.com - les navigateurs vont-ils le permettre? – stunnaman

+0

Ils peuvent, s'ils sont configurés pour autoriser les cookies tiers. La plupart sont par défaut (bien que IE ait besoin d'une politique p3p). Le script ne renvoie pas de script, il renvoie le fichier GIF binaire correct, mais ajoute également les en-têtes de cookie pour son propre cookie. – blowdart

0

Vous devrez faire un serveur à serveur XMLHTTP demande, et que le second serveur recréer les cookies. Vous ne pouvez pas les "passer".

Questions connexes