javascript - control - crossorigin
PolĂtica del mismo origen y servicio de JS desde un CDN (1)
Quiero servir mis scripts de JavaScript desde un CDN como cloudflare.
Ahora mis scripts se comunican con mi servidor de aplicaciones a través de ajax. ¿No entrarán en juego las restricciones de la política del mismo origen cuando carga estos scripts desde un CDN?
Digamos que mi aplicación está en el dominio:
http://app.com
Y cargo mis scripts desde
http://cdn.com/xyz/all.js
Ahora, ya que mis scripts se cargan desde un dominio diferente al dominio desde el que se ejecuta mi aplicación, supongo que la misma política de origen me impediría hacer una comunicación ajax con mi aplicación.
¿Estoy recibiendo algo mal?
No, funcionará. Es por eso que JSONP funciona. El "origen" del script es la página en la que se ejecuta, no de dónde viene.
Como lo pidió, aquí hay una referencia (no pude encontrar nada mejor, pero Crockford es bien conocido)
El atributo src, sorprendentemente, no está limitado por la misma política de origen. Esto significa que se puede crear un elemento de script que puede ir a cualquier servidor, obtener un script y ejecutarlo. Si el script provoca la entrega de datos codificados en JSON, entonces esto es algo muy útil. Desafortunadamente, no hay manera de restringir el script o inspeccionarlo antes de que se ejecute. Se ejecuta con la misma autoridad que los scripts de la página. Así el script puede acceder y utilizar sus cookies. Puede acceder al servidor de origen utilizando la autorización del usuario. Puede inspeccionar el DOM y el objeto global de JavaScript, y enviar cualquier información que encuentre a cualquier parte del mundo. El Script Tag Hack no es seguro y debe evitarse.
http://javascript.crockford.com/script.html
No es realmente una referencia: si esto no funcionara, nadie podría incluir jQuery del CDN de Google y luego usar el método $.ajax
.