Cada vez que creo una solicitud jQuery.ajax
, funciona bien cuando la URL usa el protocolo HTTP. Pero cuando envío la misma solicitud al servidor HTTPs, se envía sin el encabezado [HTTP_X_REQUESTED_WITH: XMLHttpRequest
]. Por lo tanto, el servidor no tiene forma de saber que esta es una solicitud de AJAX.jQuery.ajax no envía los encabezados ajax apropiados al usar HTTPS
He intentado:
- conmutación .ajax $, $ .post, $ .get
- Forzar el encabezado utilizando
beforeSend
- Configuración
CrossDomain:true
Nota: No no hay problemas entre dominios, la solicitud es válida y se maneja, pero no como AJAX.
Este problema ocurre cuando la URL actual es http pero la URL solicitada se encuentra en el mismo dominio pero usa HTTPS. http://example.com/home utilizará AJAX puesto en puesto a
Este ** es ** un problema entre dominios AFAIK. [SOP] (http://en.wikipedia.org/wiki/Same_origin_policy) requiere que las solicitudes estén en el mismo protocolo y puerto (donde, como está usando HTTP -> HTTPS y 80 -> 443). Al parecer (sin más información), jQuery * está * haciendo una solicitud JSONP detrás de las escenas, que ignora los encabezados HTTP adicionales. – Matt
¿Quiere decir cuando se encuentra en el servidor HTTP y hacer una solicitud de ajax al servidor HTTPS, verdad? –
@MikeGleasonjrCouturier yest, este es el caso. – mjalajel