Esto es lo que hicimos para IE.
Si tiene control sobre el dominio de destino, aloje allí un archivo html (estático). Incluye el html usando el iframe.
Ahora, este iframe sí tiene acceso al dominio local, por lo que puede comunicarse entre el marco primario y secundario para obtener lo que necesita.
Esto funcionó mucho mejor que XDomainRequest para nosotros.
window.postMessage es la mejor manera de configurar la comunicación:
pero estoy bastante seguro de que sólo comenzó a trabajar desde IE8. Si también necesita navegadores más antiguos, debe usar un hack diferente.
En nuestro caso, se trataba de nuestro sistema de 3 capas:
- CORS, para los navegadores que lo soportan
- un iframe & window.postMessage como punto de retorno primario
- Un proxy del lado del servidor secuencia de comandos como la secundaria secundaria
Todas estas opciones funcionan bien, son confiables y no se sienten demasiado como un hackeo. La reserva secundaria casi nunca se usó.
Tenga en cuenta que el encabezado 'Autenticación' específicamente es especial, y no me sorprendería que eso esté bloqueado en ciertas circunstancias de todos modos. Agregamos un encabezado personalizado 'X-Authenticate' ya que pasó todo el tiempo.
Eché un vistazo a la solución iframe los últimos días. Pero como tiene que establecer 'document.domain', parece funcionar solo para la comunicación entre dos subdominios del mismo TLD. Pero, ¿qué hay de dos TLD diferentes? (Podría tener que profundizar más en las cosas del servidor proxy en el fin de semana ...) –
La solución iframe * debería * funcionar si el iframe está alojado en el mismo dominio que la API. Si un script proxy es una solución para usted, puede ser * mucho * más fácil para sus propósitos. Tenga en cuenta que es (por lo general) no tanto un servidor proxy, ya que es solo un script proxy del lado del servidor. – Evert
bien, hice que las cosas del iframe funcionen. Paso un objeto con toda la información (encabezados, cuerpo posterior, ...) a la ventana de marco, que realiza las solicitudes y devuelve la respuesta. :) Acerca de la secuencia de comandos proxy: si alojo la secuencia de comandos en el servidor de la API, todavía tendría que enviar la solicitud con los encabezados en Ajax. ¿Entonces la secuencia de comandos estaría en el mismo servidor que la página 'solicitud'? (=^cliente)? De esta manera IE me permite enviar encabezados, cuerpo, etc. y el proxy envía la solicitud al api-servidor (rizo)?!? –