0

Cross-Origin XMLHttpRequestのドキュメントでは、正しいアクセス許可を使用している限り、httpsでロードされたページからhttpリソースにアクセスできるはずです。しかし、これを試みるときに次のエラーメッセージが表示されます。ChromeのコンテンツスクリプトからCross-Origin XMLHttpRequestを実行できますか?

content.js:1 Mixed Content: The page at 'https://www.example.com/' was loaded over HTTPS, but requested an insecure resource 'http://www.example.com/'. This request has been blocked; the content must be served over HTTPS. 

マニフェスト:

{ 
    "name": "Test Extension", 
    "version": "0.1", 
    "permissions": [ 
    "http://www.example.com/*", 
    "https://www.example.com/*", 
    ], 
    "content_scripts": [ 
    { 
     "matches": [ 
     "http://www.example.com/*", 
     "https://www.example.com/*" 
     ], 
     "js": ["content.js"], 
     "run_at": "document_start" 
    } 
    ], 
    "manifest_version": 2 
} 

content.js:

fetch('http://www.example.com/').then(response => { 
    console.log('Done!') 
}); 

答えて

1

あなたの問題はCORSではありません。それは混在したコンテンツなので、拡張機能でも回避することはできません。

あなたのリクエストをバックワードページに移動することができます(メッセージの受け渡しによって)。

+1

また、「example.com」を所有している場合は、代わりにhttpsでエンドポイントをホストすることを検討してください。所有していない場合は、自分のhttpsサーバーでプロキシできます。 –

関連する問題