web-dev-qa-db-ja.com

v38以降、Chrome拡張機能はHTTP URLからロードできなくなりました。回避策はありますか?

ウェブサイトのユーザーはChromeプラグインを実行します。このプラグインは、特に、 Chrome拡張機能開発ページで説明されているように、XMLHttpRequestを介してクロスオリジンリクエストを実行します 。これは数年前から正常に動作しています。ただし、ユーザーがChrome(v38)の最新バージョンにアップグレードして以来、これらのリクエストは失敗しています。私たちのサイトはHTTPS上で動作し、コンテンツスクリプトを介してロードされたURLの一部はHTTP上にあります。メッセージは次のとおりです。

[ブロック]「 https://www.ourpage.com/ 」のページはHTTPS経由でロードされましたが、「 http://www.externalpage.com ':このコンテンツもHTTPS経由でロードする必要があります。

エラーが発生したと報告された行は、HTTP呼び出しを発行しているコンテンツスクリプトにあります。

xhr.send(null);

外部ページを制御することはできず、独自のページからSSLを削除したくない。質問:これはバグですか、それとも私が知らない回避策がありますか?

(注:マニフェストのアクセス許可は常に<all_urls>に設定されていましたが、これは長い間機能していました。http://*/およびhttps://*/に設定しても役に立ちませんでした。)

15
Oliver

可能であれば、その外部ページのhttpsバージョンを使用します。

それが不可能な場合は、バックグラウンドページを使用してAJAXリクエスト( example )を処理します。

10
Rob W