variable valor validar una obtener modificar guardar enviar ejemplos crear cookie con como javascript dns cookies

validar - obtener valor de una cookie javascript



Obteniendo cookies de configuraciĆ³n en diferentes dominios, con javascript u otro (3)

No he podido encontrar nada en particular sobre esta situación en línea, así que aquí voy ... Necesito configurar / obtener las cookies almacenadas en "first.com" mientras navego por "second.com", tengo acceso completo de "primero .com "pero solo tengo acceso a JavaScript (puedo manipular el DOM como yo quiera) en" second.com ".

Mi primer enfoque fue crear un iframe en second.com (con js) que cargaba una página como "first.com/doAjax?setCookie=xxx" y que hacía una llamada ajax para decir "first.com/setCookie?cookieData=xxx "que establecería la cookie en" first.com "con los datos que transmitimos.

Eso funcionó bastante bien para configurar la cookie en first.com de second.com: para obtener una cookie, básicamente seguí el mismo procedimiento, creé el iframe que cargó "first.com/doAjax?getCookie" y eso haría una llamada ajax para decir "first.com/getCookie" que leería la información de la cookie en first.com y la devolvería como un objeto JSON.

El problema es que no puedo devolver el objeto cookie JSON a "second.com" para poder leerlo, bueno, tal vez podría traerlo cuando la llamada Ajax se complete usando "window.top", pero hay problemas de sincronización. porque no es relativo a cuándo se cargó el iframe. Espero que esté claro y me preguntaba si hay una solución más fácil en lugar de este loco iframe-> ajax, también parece que esto ni siquiera funcionará para obtener cookies en SAFARI.


Coloque este archivo PHP en first.com:

//readcookie.php echo $_COOKIE[''cookiename''];

En second.com puede usar este javascript para obtener el valor:

function readCookieCallback() { if ((this.readyState == 4) && (this.status == 200)) { alert("the value of the cookie is: "+this.responseText); } else if ((this.readyState == 4) && (this.status != 200)) { //error... } } function buttonClickOrAnything() { var refreshObject = new XMLHttpRequest(); if (!refreshObject) { //IE6 or older try { refreshObject = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { refreshObject = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { return; } } } refreshObject.onreadystatechange = readCookieCallback; refreshObject.open("GET", "http://www.first.com/readcookie.php"); refreshObject.send(); }

Saludos, Robert


Para CONFIGURAR las cookies puede cambiar mi script de la siguiente manera:

El nuevo PHP-Script:

//writecookie.php setcookie($_GET[''c''], $_GET[''v'']);

Y el JavaScript:

function buttonClickOrAnything() { var refreshObject = new XMLHttpRequest(); if (!refreshObject) { //IE6 or older try { refreshObject = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { refreshObject = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { return; } } } refreshObject.open("GET", "http://www.first.com/writecookie.php?c=cookiename&v=cookievalue"); refreshObject.send(); }

Eso debería funcionar en todos los navegadores.


Podría inyectar un elemento script en HEAD del documento con una devolución de llamada que pase la cookie que necesita a cualquier función que lo necesite.

Algo como:

<script type="text/javascript"> var newfile=document.createElement(''script''); newfile.setAttribute("type","text/javascript"); newfile.setAttribute("src", ''http://first.com/doAjax?getCookie&callback=passCookie''); document.getElementsByTagName("head")[0].appendChild(newfile); </script>

Y la página first.com/doAjax?getCookie podría hacer esto:

passCookie({''name'':''mycookie'', ''value'':''myvalue''});