13

Użytkownicy naszej witryny uruchamiają naszą wtyczkę do Chrome, która między innymi wykonuje żądania krzyżowe za pośrednictwem XMLHttpRequest, zgodnie z opisem na stronie Chrome extension development pages. To działa dobrze przez kilka lat. Jednak od czasu, gdy nasi użytkownicy przeszli na najnowszą wersję Chrome (wersja 38), żądania te nie powiodły się. Nasza strona działa na HTTPS, a niektóre adresy URL załadowane za pomocą naszego skryptu treści są w HTTP. Wiadomość jest:Od wersji 38 rozszerzenie Chrome nie może już ładować z adresów URL HTTP, obejście?

[zablokowane] Strona z „https://www.ourpage.com/” naniesiono przez HTTPS, ale niezabezpieczone zawartości z ran „http://www.externalpage.com” Ta zawartość powinna być również ładowane przez HTTPS.

Podawane linia, w którym wystąpił błąd w skrypcie zawartości gdzie jestem wydawania połączenia http:

xhr.send(null); 

mam żadnej kontroli nad strony zewnętrznej, a ja raczej nie usunąć z SSL nasza własna strona. Pytanie: Czy jest to błąd, czy istnieje obejście, którego nie znam?

(Uwaga:.. Uprawnienia w manifeście zawsze były ustawione na <all_urls> który pracował przez długi czas Ustawienie na http://*/ i https://*/ nie pomogło)

+0

Słowo kluczowe "zabrakło niezabezpieczonych treści". Co robisz z odpowiedzią XHR? – Xan

Odpowiedz

10

Jeśli to możliwe, używać wersji HTTPS że zewnętrzny strona.

Jeśli nie jest to możliwe, użyj strony w tle do obsługi żądania AJAX (example).

+1

Dzięki! Używanie strony wydarzenia sprawiło, że działa. – Oliver

+0

@RobW Dodałem moje tło i plik scrip.js w 'web_Accessible_resources' nadal otrzymuję błąd' mixed content'. – Volatil3

+1

@ Volatil3 Użyj metody ze stroną w tle. Moja poprzednia sugestia nie działa, ponieważ ograniczenia treści mieszanych są propagowane do ramek potomnych. –