Muchas veces durante los últimos N años, he necesitado mi propia página (ABC.com) para obtener algunos datos de un origen diferente (XYZ.com) y mostrarlos (todo en JavaScript, sin recuperación del servidor).
Esto no funciona porque XYZ.com no tiene ABC.com en su encabezado Access-Control-Allow-Origin
. Si el encabezado incluyera ABC.com, entonces las cookies de mi navegador (a saber, la cookie de autenticación) para XYZ.com se enviarían junto con la solicitud a XYZ.com. Entiendo totalmente por qué el navegador querría impedir que ABC.com realice solicitudes autenticadas a XYZ.com si no tuviera acceso.
Pero en todos mis escenarios, la solicitud realizada a XYZ.com son recursos que están disponibles al público, no se necesitan autenticación / cookies, cualquiera puede obtenerlos. Sé que hay soluciones alternativas para esto (solicite los datos a XYZ.com por el servidor de ABC.com). O XYZ.com puede publicar JSONP. Pero en mis casos, a veces estoy sirviendo mi archivo desde el sistema de archivos local para que no haya ningún servidor. Conseguirlo desde un servidor es un PITA. Y por último, no he tenido el control de XYZ.com y no puedo forzarlo a que también publique JSONP. norte La pregunta es: si ABC.com no está en el encabezado de control de acceso para XYZ.com, ¿por qué el navegador no permite que JavaScript de ABC.com realice una solicitud a XYZ.com, PERO NO envíe ninguna de las de XYZ.com? Las cookies se almacenan en el navegador para ese usuario. Si los fabricantes de navegadores hicieron eso, ¿eso abre al usuario a algún otro tipo de vulnerabilidad? Porque no puedo pensar en nada. ¿Qué me estoy perdiendo? ¿Es solo una cuestión de mano de obra, tomará demasiado tiempo programarlo?