Con plain-http AJAX: Está hablando de hacer un dominio cruzado de XMLHttpRequest, que no está permitido por los navegadores. Hay un W3C proposal pending para implementar esto de una manera segura en el futuro (parcialmente implementado por IE8, IIRC), pero definitivamente no es posible en este momento.
Hay, sin embargo, soluciones para hacerlo de forma segura: Subspace (que utiliza marcos flotantes y document.domain
), los fragment identifier technique (de nuevo, usa iframes) y window.name
technique (de nuevo, iframes!).
En lo que respecta a SSL, puede comprar certificados por separado para el dominio y el subdominio, o un solo comodín (* .foo.com) certificado que los cubra a ambos (naturalmente, el certificado de comodín será más caro).
Si tiene una página HTTPS que solicita elementos de otros dominios, todo estará bien mientras todo sea HTTPS. Esto significa que si usa una de las soluciones provisionales de iframes, debe especificar una URL de esquema https://
en el atributo src
del iframe.
Una solución final, menos eficiente, es tener una secuencia de comandos en https://foo.com
que proxies solicitudes de inseguridad http://bar.foo.com
.(Esto también resuelve el problema de dominios cruzados XHR, por lo que puede ignorar las otras soluciones). Por supuesto, eso significa que está enviando la solicitud de XHR al https://foo.com/someurl
, luego está presionando http://bar.foo.com/someurl
, recibiendo la respuesta y enviándola al navegador , por lo que en lo que respecta al rendimiento, es mucho mejor que simplemente mover la funcionalidad del servidor de bar.foo.com a foo.com, si tiene esa opción. Pero si no puede mover el script del servidor, entonces el proxy es el camino a seguir.
EDIT: me cambiaron los últimos 3 grafs después de hacer algunas pruebas adicionales y obtener una solución de marco flotante AJAX (la #fragmentidentifier uno) para trabajar a través de diferentes dominios HTTPS. Usted puede hacer AJAX de dominios cruzados SSL usando iframes siempre que todo sea https
y el esquema https
se use en el iframe src
. En resumen:
- Respuesta corta: no, cierto XHR entre dominios no permitió
- Solución con iframes: más eficientes, necesitan 2 SSL CERT (CERT comodín), un tanto complicada
- Solución con Proxy: menos eficiente, puede hacer con 1 o 2 certificados SSL (1 con solicitud de back-end a través de http bar.foo.com), algo complicado