Ho una pagina su un server interno, server1.mydomain.com/page.jsp e un'altra pagina su un server interno diverso, 10.x.x.x: 8081/page.aspx.SECURITY_ERR: DOM Eccezione 18 quando si applica document.domain su entrambi i siti. Come posso risolvere questo?
Su server1.mydomain.com, ho impostato document.domain in page.jsp come questo:
//page.jsp on server1.mydomain.com
document.domain = document.domain;
Quando ho emettere un avviso document.domain, si tratta come server1.mydomain.com.
Sul server 10.xxx, ho impostato document.domain in Page.aspx, di conseguenza, come questo:
//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;
In Safari 5.1.5, un errore compare sulla console:
SECURITY_ERR: DOM Exception 18: An attempt was made to break through the security policy of the user agent."
Da quanto ho capito, quando si imposta document.domain, il numero di porta è impostato su null; quindi, devi impostarlo su entrambe le estremità, cosa che ho fatto. Quindi, questo errore si verifica e sto graffiando la mia testa perché. Questo ha qualcosa a che fare con il fatto che sto usando 10.x.x.x e non un vero nome di dominio?
Grazie.
Quindi, se cambio entrambi in mydomain.com, se entrambi i server sono su mydomain.com, funzionerebbe? Supponiamo che io abbia server1.subdomain.mydomain.com e server2.subdomain.mydomain.com. Se avessi impostato entrambi su mydomain.com, funzionerebbe? – user717236
@ user717236: se la pagina del client è ospitata da 'mydomain.com', non sarà possibile effettuare richieste AJAX su' server1.subdomain.mydomain.com' o 'server2 ...', e usando 'documento. domain' non aiuterà. Ma se è vero il contrario, e la pagina del client è ospitata ad esempio da 'server1.subdomain.mydomain.com', puoi usare' document.domain' in modo che tu possa fare richieste a 'mydomain.com' . –
Oh, capisco. Quindi, nel mio caso, non penso che funzionerà, perché le pagine sono effettivamente ospitate su hostname.subdomain.mydomain.com. Se uno era serverX.mydomain.com e l'altro era serverY.subdomain.mydomain.com, quindi potevo fare qualcosa con esso. Torna al tavolo da disegno. Grazie per l'aiuto. – user717236