2011-06-20 16 views
13

W naszej witrynie niektóre strony używają protokołu SSL, większość stron jednak nie (ponieważ muszą one zostać zaindeksowane przez roboty internetowe).jQuery ajax i SSL?

To dość dużo sprowadza się do każdej strony, na której użytkownik jest zalogowany, z kilkoma wyjątkami jest pod SSL,

ale użytkownik musi najpierw zalogować się z braku stronie https (Formularz logowania jest formą który spada z góry ekranu na dowolnej stronie).

Więc

Jak mogę zmusić żądań ponad AJAX używać SSL?

Czy to jest nawet bezpieczne?

+7

Od kiedy roboty sieciowe nie działają przez SSL? Indeks Googlebota/Binga jest w porządku. – vcsjones

+1

Cóż, strony SSL ładują się wolniej. Powinny one być możliwe do zaindeksowania, chociażby – nzifnab

+1

Użyj elementu iframe. Lubię iframe. Są fajne i pozwalają ci ominąć takie rzeczy. Z iframe możesz zrobić wszystko, co masz na myśli. Niech Bóg błogosławi człowieka, który wynalazł statek. – Magmatic

Odpowiedz

11

To naruszenie zasad dotyczących samego pochodzenia JavaScriptu, ponieważ adres URL HTTPS nie jest taki sam jak adres URL HTTP. Możesz obejść ten problem, używając JSONP lub ustawiając nagłówek Access-Control-Allow-Origin w odpowiedzi z usługi internetowej. Wiele usług internetowych zostanie skonfigurowanych do tego już.

+2

To jest jednak łatwy do rozwiązania problem, ponieważ pliki javascript ajax pochodzą z https. –

+0

Czy na pewno to działa? Jeśli korzystasz z 'http: // www.mysite.com' z formularzem załadowanym na tę stronę, który przechodzi do ajax-ly POST na' https: // www.mysite.com/logic', to działa, jeśli twój Pliki JS są ładowane z 'https: // www.mysite.com/javascripts'? To jest interesujące. Być może następnym razem będę musiał spróbować rozwiązać ten problem. EDYCJA: głupia rzecz wykupiła http w stosunku do https – nzifnab

+0

Tak długo, jak połączenie ajaxowe trafia do tego samego adresu URL, co źródło html, nie ma problemu, więc jeśli chcesz przejść do strony https: // wywołanie ajax następnie wyświetla stronę z https: //. Nie jestem pewien, czy należy to zrobić w ten sposób, ale jeśli są błędy podczas testowania, po prostu zmień javascript, aby pochodzić z https. Zgodnie z tym artykułem nie powinno to mieć znaczenia, dlatego nie sugerowałem tego w mojej odpowiedzi. http://bytes.com/topic/javascript/answers/459071-ajax-https –