Tengo una página en un servidor interno, server1.mydomain.com/page.jsp y otra página en un servidor interno diferente, 10.x.x.x: 8081/page.aspx.SECURITY_ERR: DOM Exception 18 al aplicar document.domain en ambos sitios. ¿Cómo resuelvo esto?
En server1.mydomain.com, puse document.domain en page.jsp así:
//page.jsp on server1.mydomain.com
document.domain = document.domain;
Cuando emito una alerta en document.domain, lo hará como server1.mydomain.com.
En el servidor 10.xxx, me puse en document.domain Page.aspx, como resultado, de esta manera:
//page.aspx on 10.x.x.x
document.domain = "server1.mydomain.com";
// test if same-origin policy violation occurs
document.getElementById("div_el").innerHTML = window.top.location.href;
En Safari 5.1.5, se producirá un error en la consola:
SECURITY_ERR: DOM Exception 18: An attempt was made to break through the security policy of the user agent."
Por lo que entiendo, cuando configura document.domain, el número de puerto se establece en nulo; entonces, tienes que configurarlo en ambos extremos, lo cual hice. Entonces, este error ocurre y me estoy rascando la cabeza por qué. ¿Tiene esto algo que ver con el hecho de que estoy usando 10.x.x.x y no un nombre de dominio real?
Gracias.
Entonces, si cambio ambos a mydomain.com, siempre que ambos servidores estén en mydomain.com, ¿funcionaría? Supongamos que tengo server1.subdomain.mydomain.com y server2.subdomain.mydomain.com. Si configuro ambos en mydomain.com, ¿funcionaría? – user717236
@ user717236: si la página del cliente está alojada en 'mydomain.com', no podrá realizar solicitudes AJAX a' server1.subdomain.mydomain.com' o 'server2 ...', y usar 'document. domain' no ayudará. Pero si sucede lo contrario y la página del cliente está alojada, por ejemplo, en 'server1.subdomain.mydomain.com', puede usar' document.domain' para que pueda realizar solicitudes a 'mydomain.com' . –
Oh, ya veo. Por lo tanto, en mi caso, no creo que funcione, porque las páginas están hospedadas de manera efectiva en hostname.subdomain.mydomain.com. Si uno era serverX.mydomain.com y el otro era serverY.subdomain.mydomain.com, entonces podría hacer algo con él. De vuelta al tablero de dibujo. Gracias por tu ayuda. – user717236