13

Die Nutzer unserer Website unsere Chrome-Plugin laufen, führt Cross-Origin-Anfragen über XMLHttpRequest wie auf dem Chrome extension development pages beschrieben. Das läuft seit ein paar Jahren gut. Seit der Umstellung unserer Benutzer auf die neueste Version von Chrome (v38) sind diese Anfragen fehlgeschlagen. Unsere Website läuft auf HTTPS und einige der URLs, die über unser Inhaltsskript geladen werden, sind auf HTTP. Die Botschaft lautet:Seit Version 38 kann die Chrome-Erweiterung nicht mehr von HTTP-URLs geladen werden, Problemumgehung? die unter anderem

[gesperrt] Die Seite auf ‚https://www.ourpage.com/‘ wurde über geladen HTTPS, lief aber unsichere Inhalte von ‚http://www.externalpage.com‘: dieser Inhalt sollte auch über HTTPS geladen werden.

Die gemeldete Linie, wo der Fehler im Content-Skript aufgetreten ist, wo ich den HTTP-Aufruf bin Ausgabe:

xhr.send(null); 

Ich habe keine Kontrolle über die externe Seite und ich würde lieber nicht SSL entfernen unsere eigene Seite. Frage: Ist das ein Fehler oder gibt es eine Problemumgehung, die mir nicht bekannt ist?

(Anmerkung:.. Die Berechtigungen im Manifest wurden immer auf <all_urls>, die für eine lange Zeit gearbeitet hatte es http://*/ Einstellung und https://*/ hat nicht geholfen)

+0

Schlüsselwort "lief unsicherer Inhalt". Was machst du mit der XHR-Antwort? – Xan

Antwort

10

Wenn möglich, verwenden Sie die https-Version des externen Seite.

Wenn das nicht möglich ist, verwenden Sie die Hintergrundseite der AJAX-Request (example) zu handhaben.

+1

Danke! Die Verwendung einer Ereignisseite hat es funktioniert. – Oliver

+0

@RobW Ich habe meine Hintergrund- und scrip.js-Datei in 'web_Accessible_resources' hinzugefügt, wobei immer noch der Fehler 'gemischter Inhalt' auftritt. – Volatil3

+1

@ Volatil3 Verwenden Sie die Methode mit der Hintergrundseite. Mein vorheriger Vorschlag funktioniert nicht, da gemischte Inhaltsbeschränkungen an untergeordnete Frames weitergegeben werden. –