Desde ajax de jQuery ist no trabajo para CORS/IE, estoy usando XDomainRequest para la recuperación de datos desde otro Servidor. El trabajo está bien, pero me gustaría enviar algunos header (‘Autenticación’, ‘content-type’).

Hay posibilidad de añadir/cambiar el encabezado en la XDomainRequest?

O ¿alguien sabe una solución?

2 Comentarios

  1. 17

    Esto es lo que hicimos para IE.

    Si usted tiene el control sobre el dominio de destino, el host a (estática) archivo html allí. Incluir el html con el iframe.

    Ahora este iframe tiene realmente acceso al dominio local, por lo que se pueden comunicar entre el padre y el hijo de marco para conseguir lo que necesita.

    Esta trabajado mucho mejor que XDomainRequest para nosotros.

    de la ventana.postMessage es la mejor manera de configurar la comunicación:

    Pero estoy bastante seguro de que sólo comenzó a trabajar desde IE8. Si usted requiere de los navegadores más antiguos así, debe usar un hack.

    En nuestro caso, este fue nuestro 3-capa de sistema:

    1. CORS, para los navegadores que lo soportan
    2. Un iframe & ventana.postMessage como principal reserva
    3. En el lado del servidor proxy de secuencia de comandos como la secundaria de reserva

    Todas estas opciones funcionan bien, son fiables y no se sentía demasiado como un hack. La secundaria de reserva fue apenas la he usado nunca.

    Tenga en cuenta que el ‘Autenticación’ encabezado específicamente es especial, y yo no estaría sorprendido de que bloqueado, bajo ciertas circunstancias, de todos modos. Hemos añadido una cabecera personalizada ‘X-Autenticar» como se hizo pasar a través de todo el tiempo.

    • Tenía una mirada en el iframe solución los últimos días. Pero ya que usted tiene para el conjunto del documento.el dominio’, parece que funciona sólo para la comunicación entre dos subdominios del mismo TLD. Pero, ¿qué acerca de dos diferentes TLD? (Voy a tener que digg más profundo en el servidor proxy cosas en el fin de semana…)
    • La solución de iframe debe de trabajo si el iframe está alojado en el mismo dominio que el de la API. Si un script de proxy es una solución para usted, que bien puede ser por tanto más fácil para sus propósitos. Tenga en cuenta que (normalmente) no tanto un servidor proxy, ya que es un servidor proxy del lado de secuencia de comandos.
    • ok, he hecho el iframe cosas de trabajo. Estoy pasando un objeto con toda la información (encabezados, post-cuerpo,…) a la ventana de marco, que realiza las peticiones y devolver la respuesta. 🙂 Sobre el script de proxy: Si yo host de la secuencia de comandos de la API de Servidor, que todavía le tiene que enviar la solicitud con los encabezados en Ajax. Así que el guión iba a estar en el mismo servidor como la ‘petición’-página? (=^ cliente)? De esta manera IE me permite enviar los encabezados, cuerpo,etc. y el proxy envía la petición a la api de servidor (curl)?!?
    • Sí, en caso de que el script de Proxy, debe vivir en el mismo dominio que el de las llamadas de página’.
  2. 2

    De IE XDomainRequest no permitir que los encabezados personalizados para configurar. Ver punto #3 aquí: http://blogs.msdn.com/b/ieinternals/archive/2010/05/13/xdomainrequest-restrictions-limitations-and-workarounds.aspx La XDomainRequest objeto está bloqueado hasta el punto de que es difícil hacer solicitudes autenticadas.

    • Pero debe haber una solución!?! O es el IE peor de lo que pensaba?
    • Sin la capacidad para personalizar los encabezados o las cookies, no estoy seguro de que una buena forma de hacer solicitudes autenticadas. Podría pasar la autenticación de credenciales como un parámetro de consulta (creo que el OAuth2 de agente de usuario de flujo permite), sin embargo esto puede no ser tan seguro (y debe hacerse a través de SSL). Lo siento, tal vez alguien tiene una respuesta mejor 🙂
    • Pensaba que sólo necesitaban para iniciar sesión en los otros dominios de sitio. (de esta manera establecer la adecuada cookies de sesión y la autenticación de cabeceras). Luego de su XDomainRequest usaría la sesión se establecieron? Puedo estar equivocado, sin embargo.
    • Sí, es decir, es peor de lo que pensaba. No importa lo que usted piensa acerca de ello; es peor que eso.

Dejar respuesta

Please enter your comment!
Please enter your name here