Ok, entonces esto es raro.
Ya sé qué es el origen ( https://developer.mozilla.org/en-US/docs/Glossary/Origin ), cómo usar correctamente el encabezado "Access-Control-Allow-Origin", etc., pero esto es algo nunca visto antes.
Tengo una ventana de "padre". Esta ventana está abriendo una ventana "secundaria" a través del método window.open(url). la url proporcionada es la misma url de la ventana padre:
var childWindow = window.open(window.location.href);Cuando la ventana padre intenta acceder a una propiedad de childWindow, obtiene el error de origen cruzado:
childWindow.data; > Uncaught DOMException: Blocked a frame with origin XXXXXXXXXXXXX from accessing a cross-origin frame.Lo interesante es: en la consola de desarrollador del navegador de la ventana "padre", escribiendo
window.location.origin;imprime el origen (algo así como http://abc )
y en la consola de desarrollador del navegador de la ventana "secundaria", escribiendo
window.location.origin;imprime exactamente el mismo origen (algo así como http://abc )
Notas: no hay iframes involucrados aquí. La URL window.location.href responde con 200 OK (no 302 u otras cosas) y una página html simple con algunos CSS y scripts.
Nota #2: las dos instrucciones se ejecutan secuencialmente. En el medio no hay otros códigos.
Nota #3: obviamente XXXXXXXXXXX no es el origen real, lo omití por cuestiones de privacidad. Pero es algo así como http://abc (puerto 80 implícito)
Nota n.º 4: no es relevante aquí porque también debería funcionar sin él, pero la URL window.location.href responde con el encabezado de respuesta "Access-Control-Allow-Origin": *
¿Cualquier pensamiento?