javascript - nodejs https post
Llamada de dominio cruzado de JavaScript: llamada de HTTP a HTTPS (4)
¿Alguien ha mirado?
https://github.com/jpillora/xdomain
Utiliza postMessage e iframes para lograr solicitudes de cors, y es un navegador cruzado (no es necesario que los dientes cierren XDomainRequests en IE).
¿Tal vez permitirá peticiones cruzadas de protocolo cruzadas?
Necesito realizar una llamada asíncrona a una URL segura (HTTPS) para el mismo dominio.
Actualmente la página está trabajando con HTTP regular (no seguro).
En otras palabras: esto está llamando a una URL en el mismo dominio pero usando HTTPS.
Antes de cambiar estas llamadas a HTTPS, terminé de implementar un proxy del lado del servidor para permitir llamadas AJAX de dominio cruzado, pero ahora me enfrento a la misma política de origen, ya que HTTP y HTTPS también se consideran orígenes diferentes. Así que este proxy es inutilizable.
Resumen: ¿cómo realizar solicitudes POST asnyncrónicas entre dominios en este escenario?
Notas varias:
- No pude aceptar ninguna respuesta sugiriendo JSONP. Las llamadas asíncronas deben estar utilizando el verbo POST.
- Estoy usando la última versión de jQuery. La respuesta podría basarse en esta biblioteca o en cualquier otra solución para este problema.
- Acceder a la página completa a través de HTTPS no es una solución.
- La plataforma del servidor es Microsoft .NET 4.0 (ASP.NET 4.0).
-
UDPATE : CORS no es una opción.No hay un amplio soporte para esto en los navegadores modernos.
Debería reconsiderar el acceso a toda la página a través de HTTPS o al menos estar realmente seguro de que esto no es factible.
Al cargar la página inicial y el script a través de HTTP, el usuario no tiene garantía de seguridad de que el script es el que originalmente pretendía enviar y no está siendo manipulado por un tercero (por ejemplo, al registrar su contraseña). Esto significa que cualquier solicitud de HTTPS que omita el SOP no proporcionará las mismas garantías de seguridad que una solicitud de HTTPS desde una página originalmente servida sobre HTTPS.
En primer lugar, tengo +1 en ambas preguntas de @missingo y @PiTheNumber.
Después de pasar muchas horas, llegué a la conclusión de que voy a cambiar toda la página a HTTPS. Eso es porque:
La mayoría de los navegadores modernos admiten CORS, pero Internet Explorer, a partir de la 8ª versión, tiene una implementación propietaria (objeto XDomainRequest), que puede estar deshabilitada en algunas computadoras (la mía tenía la solicitud de varios dominios deshabilitada en la zona de seguridad de Internet).
Opera no soporta CORS. La 12ª versión lo admitirá, pero esta no es una opción, ya que los usuarios deberían adoptar esta nueva versión primero, y esto no será en 2 días.
Necesito hacer solicitudes de dominio cruzado ya que la aplicación cliente web debe solicitar una capa de servicio RESTful ubicada en otro dominio. De ninguna manera.
Cambiar todo a HTTPS hace que el enfoque de proxy de la capa de servicio vuelva a funcionar (este es el comportamiento esperado).
Gracias de todos modos porque ambas respuestas me han ayudado mucho para llegar a esta conclusión.
ACTUALIZAR
@Sam ha agregado un comentario que podría ser interesante para cualquiera. Se trata de cómo obtener CORS en Internet Explorer 8 y 9 (ver # 7): http://blogs.msdn.com/b/ieinternals/archive/2010/05/13/xdomainrequest-restrictions-limitations-and-workarounds.aspx
Estoy usando Access-Control-Allow-Origin . Usted acaba de enviar el encabezado y está bien.
Vea también AJAX, Subdominios y SSL