Zawsze, gdy tworzę żądanie jQuery.ajax
, działa poprawnie, gdy adres URL korzysta z protokołu HTTP. Ale kiedy wyślę to samo żądanie do serwera HTTPs, zostanie wysłane bez nagłówka [HTTP_X_REQUESTED_WITH: XMLHttpRequest
]. W ten sposób serwer nie ma możliwości dowiedzenia się, że jest to żądanie AJAX!jQuery.ajax nie wysyła odpowiednich nagłówków ajax podczas korzystania z HTTPS
Próbowałem:
- Przełączanie $ .ajax, $ .post, $ .get
- Zmuszanie nagłówek używając
beforeSend
- Ustawianie
CrossDomain:true
Uwaga: Nie nie są problemami z wieloma domenami, żądanie jest poprawne i obsługiwane, ale nie jako AJAX.
Ten problem występuje, gdy bieżący adres URL to http, ale żądany adres URL znajduje się w tej samej domenie, ale korzysta z protokołu HTTPS. http://example.com/home użyje AJAX POST odpowiedzieć na
To ** jest ** problemem między domenami AFAIK. [SPO] (http://en.wikipedia.org/wiki/Same_origin_policy) wymaga, aby żądania dotyczyły tego samego protokołu i portu (gdzie - jak używasz HTTP -> HTTPS i 80 -> 443). Wydawałoby się (bez żadnych dodatkowych informacji), że jQuery * robi * żądanie JSONP za kulisami, które ignoruje dodatkowe nagłówki HTTP. – Matt
Masz na myśli, kiedy jesteś na serwerze HTTP i wysyłasz żądanie ajax do serwera HTTPS, prawda? –
@MikeGleasonjrCouturier, tak jest. – mjalajel